feat: use webcam
This commit is contained in:
parent
10e8eecd31
commit
f3fd7360c3
10
README.md
10
README.md
@ -2,7 +2,7 @@
|
||||
|
||||
## Todo
|
||||
|
||||
- [ ] Utiliser une webcam en entrée
|
||||
- [x] Utiliser une webcam en entrée
|
||||
- [x] Créer une interface avec tkinter
|
||||
- [x] Variabliser les tailles et couleurs via l'interface
|
||||
|
||||
@ -42,11 +42,11 @@ L'interface graphique **Yiking** permet de contrôler divers paramètres pour un
|
||||
|
||||
#### 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.
|
||||
- **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. **maxRadius**
|
||||
- **Description** : Rayon maximal des cercles détectés.
|
||||
#### 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.
|
||||
|
||||
@ -55,7 +55,7 @@ L'interface graphique **Yiking** permet de contrôler divers paramètres pour un
|
||||
- **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_max, color1_V_max, color1_B_max, color1_R_max, color1_V_max, color1_B_max,**
|
||||
#### 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.
|
||||
|
35
process.py
35
process.py
@ -13,6 +13,35 @@ dir_path = Path(".").absolute()
|
||||
TYPE_1 = "_________"
|
||||
TYPE_2 = "___ ___"
|
||||
|
||||
import cv2
|
||||
|
||||
|
||||
def capture_frame_from_webcam():
|
||||
"""
|
||||
Captures a single frame from the webcam.
|
||||
|
||||
Returns:
|
||||
frame (numpy.ndarray): The captured frame as a NumPy array.
|
||||
"""
|
||||
# Open a connection to the default webcam (index 0)
|
||||
cap = cv2.VideoCapture(0)
|
||||
|
||||
if not cap.isOpened():
|
||||
raise Exception("Could not open webcam. Please check your webcam connection.")
|
||||
|
||||
try:
|
||||
# Capture a single frame
|
||||
ret, frame = cap.read()
|
||||
|
||||
if not ret:
|
||||
raise Exception("Failed to capture frame from webcam.")
|
||||
|
||||
return frame
|
||||
finally:
|
||||
# Release the webcam resource
|
||||
cap.release()
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class Object:
|
||||
@ -48,8 +77,10 @@ def process_frame(params):
|
||||
)(params)
|
||||
|
||||
# 1. Acquisition de l'image
|
||||
src = dir_path.joinpath('tests/images/balls-full-small.jpg')
|
||||
raw_image = cv2.imread(str(src))
|
||||
# src = dir_path.joinpath('tests/images/balls-full-small.jpg')
|
||||
# raw_image = cv2.imread(str(src))
|
||||
|
||||
raw_image = capture_frame_from_webcam()
|
||||
|
||||
# 2. Boxing des objets via opencv
|
||||
gray = cv2.cvtColor(raw_image, cv2.COLOR_BGR2GRAY)
|
||||
|
Loading…
Reference in New Issue
Block a user