Dessiner un rectangle à l'aide du module OpenCV en Python

Vaibhav Vaibhav 22 janvier 2022
Dessiner un rectangle à l'aide du module OpenCV en Python

OpenCV est une bibliothèque de vision par ordinateur en temps réel. Il est disponible pour les langages de programmation tels que Python, Java et C++. En utilisant OpenCV, nous pouvons dessiner des formes et traiter des images efficacement. Dans cet article, nous allons apprendre à utiliser le module OpenCV pour dessiner des rectangles.

Dessiner des rectangles à l’aide d’OpenCV

Le module OpenCV a une fonction rectangle() qui peut être utilisée pour dessiner des rectangles. Il renvoie un objet image. Il accepte les arguments suivants.

  • img : C’est l’objet image sur lequel le rectangle doit être créé.
  • pt1 : Ce sont les coordonnées de départ du rectangle. Il accepte un tuple avec une valeur de coordonnée x et une valeur de coordonnée y.
  • pt2 : Ce sont les coordonnées de fin du rectangle. Il accepte un tuple avec une valeur de coordonnée x et une valeur de coordonnée y.
  • color : C’est un tuple représentant la couleur du rectangle. OpenCV considère le format BGR par défaut. Ainsi, les valeurs doivent être saisies en BGR, au lieu du format RVB général. Par exemple, (255, 0, 0) représente le bleu et (0, 0, 255) représente le rouge.
  • thickness : C’est l’épaisseur du bord du rectangle. Ses unités sont px. L’épaisseur de -1 remplira le rectangle avec la couleur spécifiée. Pour les autres valeurs d’épaisseur positives, le rectangle ne sera pas rempli avec la couleur spécifiée. Il ne s’appliquera qu’à la frontière.

Voyons maintenant comment nous pouvons pratiquement utiliser cette fonction pour dessiner des rectangles. Référez-vous au code suivant pour un exemple.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 0, 255)
thickness = 3
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

Le code ci-dessus charge d’abord l’image à partir du chemin spécifié, convertit l’ordre des couleurs BGR en ordre des couleurs RVB à l’aide de cv2.COLOR_BGR2RGB, puis dessine un rectangle de taille 360 x 360 sur l’image. Notez que la valeur de l’épaisseur est positive. Cela signifie que le rectangle n’aura pas de couleur de remplissage.

De plus, nous avons cette instruction cv2.waitKey(0) à la fin du code. Il empêche l’image de se fermer automatiquement une fois le programme exécuté. Si le programme est exécuté sans cette instruction, l’image modifiée apparaîtra puis se fermera immédiatement.

Production :

dessiner une rectangle dans opencv cv2 python

Et si on changeait la valeur de l’épaisseur en -1 ? Dans ce cas, le rectangle aura une couleur de remplissage. Reportez-vous au code suivant pour la même chose.

import cv2

image_url = "full\\path\\to\\the\\image\\image.jpg"  # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 255, 255)
thickness = -1
image_with_rectangle = cv2.rectangle(
    img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)

Production :

dessiner une rectangle dans opencv cv2 python - régler l’épaisseur sur -1

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python OpenCV