2024-12-08 19:45:57 +00:00
# Ursula Le Yiking
## Todo
- [ ] Utiliser une webcam en entrée
2024-12-10 22:15:29 +00:00
- [x] Créer une interface avec tkinter
- [x] Variabliser les tailles et couleurs via l'interface
2024-12-08 19:45:57 +00:00
## Crash course
Lancer, avec une version Python >= 3.10 :
```shell
2024-12-08 19:58:42 +00:00
cd /tmp
2024-12-08 19:45:57 +00:00
git clone https://git.interhacker.space/protonphoton/yiking
2024-12-08 19:58:42 +00:00
cd yiking
2024-12-08 19:45:57 +00:00
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
python3 main.py
```
2024-12-15 13:28:27 +00:00
... devrait afficher une interface utilisateur.
2024-12-08 19:45:57 +00:00
2024-12-15 13:28:27 +00:00
## Documentation Utilisateur : Paramètres OpenCV
L'interface graphique **Yiking** permet de contrôler divers paramètres pour un traitement d'image réalisé avec OpenCV. Voici une explication de chaque paramètre et son rôle dans l'algorithme de détection.
---
### Paramètres OpenCV
#### 1. **maxDist**
- **Description** : Distance maximale entre les centres de deux cercles détectés.
- **Rôle** : Permet de contrôler la densité des cercles détectés. Une valeur élevée empêche la détection de cercles trop proches.
- **Conseil** : Augmentez cette valeur si trop de cercles se chevauchent.
#### 2. **param1**
- **Description** : Seuil supérieur pour le détecteur de bords (fonction Canny).
- **Rôle** : Définit la sensibilité de la détection des bords dans l'image. Une valeur élevée capture uniquement les bords bien définis.
- **Conseil** : Utilisez une valeur basse pour détecter plus de détails, mais avec plus de bruit.
2024-12-08 19:45:57 +00:00
2024-12-15 13:28:27 +00:00
#### 3. **param2**
- **Description** : Seuil pour le processus d'accumulation circulaire (HoughCircles).
- **Rôle** : Détermaxe la robustesse de la détection des cercles. Une valeur élevée garantit que seuls les cercles bien définis seront détectés.
- **Conseil** : Augmentez cette valeur pour réduire les faux positifs.
2024-12-08 19:45:57 +00:00
2024-12-15 13:28:27 +00:00
#### 4. **maxRadius**
- **Description** : Rayon maximal des cercles détectés.
- **Rôle** : Filtre les cercles dont le rayon est inférieur à cette valeur.
- **Conseil** : Utilisez une valeur basse si vous souhaitez détecter de petits cercles.
2024-12-08 19:45:57 +00:00
2024-12-15 13:28:27 +00:00
#### 5. **maxRadius**
- **Description** : Rayon maximal des cercles détectés.
- **Rôle** : Filtre les cercles dont le rayon dépasse cette valeur.
- **Conseil** : Réglez cette valeur en fonction de la taille des cercles que vous recherchez.
2024-12-08 19:45:57 +00:00
2024-12-15 13:28:27 +00:00
#### 6. **color1_R_max, color1_V_max, color1_B_max, color1_R_max, color1_V_max, color1_B_max,**
- **Description** : Couleur en (Rouge, Vert, Bleu) avec des valeurs minimales et maximales pour le filtrage par couleur.
- **Rôle** : Définit un seuil bas et un seuil haut pour détecter uniquement les pixels correspondants à une certaine teinte.
- **Conseil** : Ajustez ces valeurs pour isoler une couleur d'intérêt. Toute teinte en dehors de cette plage sera affectée à l'autre couleur.
---
### Utilisation
- Appuyer sur le bouton `Run` pour afficher une capture.
- Utiliser les sliders de détection de forme jusqu'à obtention du résultat voulu.
- Utiliser les valeurs (R, V, B) affichées pour les boules détectées pour définir la plage de couleur d'une couleur voulue.
## Exemple
2024-12-08 19:45:57 +00:00
### Source
![](./tests/images/balls-full-small.jpg)
### Post traitement
2024-12-15 13:28:27 +00:00
![./tests/images/gui.png]()