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 sontpx
. 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 :
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 :