# 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 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]()