yiking/README.md
2024-12-16 21:39:20 +01:00

83 lines
3.2 KiB
Markdown

# Ursula Le Yiking
## Todo
- [x] Utiliser une webcam en entrée
- [x] Créer une interface avec tkinter
- [x] Variabliser les tailles et couleurs via l'interface
## Crash course
Lancer, avec une version Python >= 3.10 :
```shell
cd /tmp
git clone https://git.interhacker.space/protonphoton/yiking
cd yiking
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
# Affiche l'interface pour le public
python3 public.py
# Affiche l'interface opérateur
python3 main.py
```
... devrait afficher une interface utilisateur.
## 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.
#### 3. **param2**
- **Description** : Seuil pour le processus d'accumulation circulaire (HoughCircles).
- **Rôle** : Détermine 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.
#### 4. **minRadius**
- **Description** : Rayon minimal 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.
#### 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.
#### 6. **color1_R_min, color1_R_max, color1_V_min, color1_V_max, color1_B_min, 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
### Source
![](./tests/images/balls-full-small.jpg)
### Post traitement
![](./tests/images/gui.png)