CV2 : Master Guide OpenCV pour les développeurs Python

Python est un langage de programmation populaire qui dispose de nombreuses bibliothèques et modules pour différentes applications. L'une de ces bibliothèques, souvent utilisée pour le traitement d'images et de vidéos, est OpenCV. Le module cv2 est le module le plus important d'OpenCV. Il offre aux développeurs une interface facile à utiliser pour travailler avec des fonctions de traitement d'images et de vidéos.

Dans cet article, nous allons montrer quelques-unes des fonctions les plus fréquemment utilisées dans cv2.

cv2 - Installation

Avant d'aborder les fonctionnalités, cv2 doit être installé. Il y a deux façons principales d'installer cv2 :

  1. pip install opencv-python
  2. conda install -c conda-forge opencv

Une fois cv2 installé, nous pouvons commencer à utiliser les différentes fonctionnalités offertes par la bibliothèque.

Dans le passé, nous avons déjà écrit sur des paquets Python tels que

cv2.imread

cv2.imread est une fonction permettant de lire une image dans un fichier. Elle prend le chemin d'accès au fichier en entrée et renvoie un tableau Numpy contenant l'image. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')

cv2.resize

cv2.resize est une fonction utilisée pour redimensionner une image. Elle prend l'image d'entrée et les nouvelles dimensions comme entrées et renvoie l'image redimensionnée. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')
resized_img = cv2.resize(img, (500, 500))

cv2.imshow

cv2.imshow est une fonction utilisée pour afficher une image. Elle prend l'image comme entrée et ouvre une nouvelle fenêtre pour afficher l'image. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite

cv2.imwrite est une fonction qui permet d'enregistrer une image dans un fichier. Elle prend l'image et le chemin d'accès au fichier comme entrée et enregistre l'image dans le chemin d'accès au fichier. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')
cv2.imwrite('new_image.jpg', img)

cv2.threshold

cv2.threshold est une fonction qui permet d'attribuer une valeur de seuil à une image. Elle prend l'image d'entrée et une valeur de seuil comme entrée et renvoie l'image dotée de valeurs de seuil. Voici un exemple :

import cv2
img = cv2.imread('image.jpg', 0)
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

cv2.rectangle

cv2.rectangle est une fonction qui permet de dessiner un rectangle sur une image. Elle prend en entrée l'image d'entrée, les coordonnées du rectangle, la couleur et l'épaisseur et renvoie l'image avec le rectangle dessiné. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')
cv2.rectangle(img, (100, 100), (200, 200), (0, 255, 0), 2)

cv2.findContours

cv2.findContours est une fonction utilisée pour trouver les contours dans une image. Elle prend en entrée l'image d'entrée, le mode de récupération des contours et la méthode d'approximation des contours et renvoie les contours. Voici un exemple :

import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
contours

Chargement et affichage d'images

Une fois que vous avez installé CV2, vous pouvez travailler avec des images. La première étape consiste à charger une image dans votre programme Python. Pour cela, vous pouvez utiliser la fonction cv2.imread(), qui prend en entrée le chemin d'accès au fichier image et renvoie un tableau NumPy représentant l'image.

import cv2
# Charger une image
img = cv2.imread('image.jpg')
# Afficher l'image
cv2.imshow('Image', img)
# Attendre qu'une clé soit pressée puis fermer la fenêtre
cv2.waitKey(0)
cv2.destroyAllWindows()

Dans le code ci-dessus, nous chargeons d'abord une image avec la fonction cv2.imread() et la stockons dans la variable img. Ensuite, nous affichons l'image avec la fonction cv2.imshow(), qui nécessite deux arguments : le nom de la fenêtre et l'image elle-même. Enfin, nous attendons qu'une touche soit pressée avec la fonction cv2.waitKey(), puis nous fermons la fenêtre avec la fonction cv2.destroyAllWindows().

Manipulation d'images

CV2 offre de nombreuses fonctions de traitement des images, telles que le redimensionnement, la rotation et le recadrage. En voici quelques exemples :

# Redimensionner une image
resized_img = cv2.resize(img, (500, 500))
# Rotation d'une image
(lignes, cols) = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated_img = cv2.warpAffine(img, M, (cols, rows))
# Crop une image
cropped_img = img[100:300, 200:400]

Dans le code ci-dessus, on redimensionne une image avec la fonction cv2.resize(), on fait pivoter une image avec les fonctions cv2.getRotationMatrix2D() et cv2.warpAffine() et on recadre une image avec l'indexation NumPy Array.

Filtrage des images

Le filtrage des images est une technique importante dans le traitement des images qui permet d'améliorer ou d'extraire certaines caractéristiques d'une image. CV2 propose plusieurs fonctions de filtrage d'images, telles que le flou, l'accentuation et la détection des contours. En voici quelques exemples :

# Flou sur une image
blurred_img = cv2.blur(img, (5, 5))
# Sharpen an image
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpened_img = cv2.filter2D(img, -1, kernel)
# Détecte les bords dans une image
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges_img = cv2.Canny(gray_img, 100, 200)

Dans le code ci-dessus, une image est floutée avec la fonction cv2.blur(), affinée avec la fonction cv2.filter2D() et un noyau défini par l'utilisateur, et détectée avec la fonction cv2.cvtColor() pour convertir l'image en niveaux de gris et la fonction cv2.Canny() pour détecter les bords dans une image.

Conclusion

CV2 est une bibliothèque puissante pour travailler avec des images dans Python. Dans cet article, nous avons abordé quelques-unes des fonctions et méthodes les plus fréquemment utilisées dans CV2, notamment le chargement et l'affichage d'images, la manipulation d'images et le filtrage d'images. Avec ces outils à votre disposition, vous pouvez explorer le monde passionnant de la vision par ordinateur et du traitement d'images.

CV2 peut être consulté sous PyPi télécharger.

Pour les développeurs, nos contributions pour API OCR et Document AI également très excitant.

"
"
Avatar de Florian Zyprian

Derniers articles