83 lines
3.2 KiB
Markdown
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) |