« Vision robotique » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 4 : | Ligne 4 : | ||
:Comme les verres ont tous la même couleur, il est simple de les identifier dans l'image en utilisant la fonction de détection de couleur de open cv. | :Comme les verres ont tous la même couleur, il est simple de les identifier dans l'image en utilisant la fonction de détection de couleur de open cv. | ||
:Pour réaliser ce projet, nous avons besoin d'un ordinateur en linux avec webcam intégrée. | :Pour réaliser ce projet, nous avons besoin d'un ordinateur en linux avec webcam intégrée. | ||
:Ce projet a été développé par Raphaël Bouchard en 2025. le code d'exemple a été écrit par celui-ci au cégep de Sorel Tracy. | |||
[[File:apercu_comp.jpeg|400px]] | [[File:apercu_comp.jpeg|400px]] | ||
| Ligne 16 : | Ligne 17 : | ||
'''2. Enregistrer le projet et le nommer avec un nom terminant en < | '''2. Enregistrer le projet et le nommer avec un nom terminant en <q>.py </q>''' | ||
: Le fichier sera donc enregistré en document contenant du code python | : Le fichier sera donc enregistré en document contenant du code python | ||
[[File:save_as.png|700px]] | [[File:save_as.png|700px]] | ||
| Ligne 77 : | Ligne 78 : | ||
break | break | ||
</nowiki> | </nowiki> | ||
---- | |||
===='''Lancer le programme'''==== | |||
: 1. '''S'assurer d'avoir enregistré les modifications en faisant <q>ctrl + S </q>''' | |||
: 2. '''Lancer le Terminal''' | |||
:[[File:Terminal.png|600px]] | |||
: 3. '''entrer la commande suivante: <q> python3 exemple.py </q> ''' | |||
:: *Remplacer <q>exemple</q> par le nom du fichier bloc-notes choisis a l'étape 2 de la section programmation python. | |||
: 4. '''Pour arrêter le programme et fermer l'image, appuyez sur la touche <q>Q </q> de votre clavier. ''' | |||
::Si cela ne fonctionne pas, vous pouvez forcer le programme à s'arrêter en faisans <q>ctrl + C </q> dans le terminal. | |||
Version du 26 janvier 2026 à 21:13
Présentation du projet
- Le projet de vision robotique utilise la librairie open cv en python pour détecter des cibles dans une image.
- Au cégep nous utilisons des verres rouges sur fond gris (table tournante) comme cible.
- Comme les verres ont tous la même couleur, il est simple de les identifier dans l'image en utilisant la fonction de détection de couleur de open cv.
- Pour réaliser ce projet, nous avons besoin d'un ordinateur en linux avec webcam intégrée.
- Ce projet a été développé par Raphaël Bouchard en 2025. le code d'exemple a été écrit par celui-ci au cégep de Sorel Tracy.
Programmation Python
1. ouvrir le bloc note
2. Enregistrer le projet et le nommer avec un nom terminant en .py
- Le fichier sera donc enregistré en document contenant du code python
3. Copier le code d'exemple et le coller dans le bloc-notes
import numpy as np
import cv2
import time
camera = cv2.VideoCapture(0) # 0 = cam ordi / 2 = cam usb
while (1):
ret, image = camera.read()
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
#rouge_min = np.array([110, 180, 140], np.uint8) # en HSV
#rouge_max = np.array([190, 255, 255], np.uint8)
rose_min = np.array([160, 80, 60], np.uint8) # en HSV
rose_max = np.array([179, 255, 255], np.uint8)
orange_min = np.array([0,80, 60], np.uint8) # en HSV
orange_max = np.array([15, 255, 255], np.uint8)
masque_orange = cv2.inRange(image_hsv, orange_min, orange_max)
masque_rose = cv2.inRange(image_hsv, rose_min, rose_max)
masque_rouge = masque_rose | masque_orange
kernal = np.ones((5, 5), "uint8")
masque_rouge = cv2.dilate(masque_rouge, kernal)
masque_et_image = cv2.bitwise_and(image, image, mask = masque_rouge)
contour, hierarchy = cv2.findContours(masque_rouge, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # cv2.RETR_EXTERNAL ou cv2.RETR_TREE
num_cible = 1
for pic, contour in enumerate (contour):
aire = cv2.contourArea(contour)
if (aire > 5000):
x, y, l, h = cv2.boundingRect(contour)
x_image = x
y_image = y
milieu =(x_image + (l // 2)), (y_image + (h //2 ))
verre = cv2.circle(image, (milieu), (l // 2), (0, 255, 0), 5)
cv2.circle(image, (milieu) , 5, (255, 0, 0), -1) #point au milieu des rond
num_cible_str = str(num_cible)
cv2.putText(image, (num_cible_str), (x_image, y_image),cv2.FONT_HERSHEY_SIMPLEX, 2.5,(255, 0, 0),6)
num_cible = (num_cible + 1)
cv2.imshow("camera", image)
if cv2.waitKey(10) & 0xFF == ord('q'):
camera.release()
cv2.destroyAllWindows()
break
Lancer le programme
- 1. S'assurer d'avoir enregistré les modifications en faisant
ctrl + S
- 3. entrer la commande suivante:
python3 exemple.py
- *Remplacer
exemple
par le nom du fichier bloc-notes choisis a l'étape 2 de la section programmation python.
- *Remplacer
- 4. Pour arrêter le programme et fermer l'image, appuyez sur la touche
Q
de votre clavier.- Si cela ne fonctionne pas, vous pouvez forcer le programme à s'arrêter en faisans
ctrl + C
dans le terminal.
- Si cela ne fonctionne pas, vous pouvez forcer le programme à s'arrêter en faisans