En règle générale, l'analyse d'image par des algorithmes de vision par ordinateur passe par les étapes suivantes (mais certaines étapes peuvent ne pas être là):
1. Prétraitement de l'image. À ce stade, des améliorations de la qualité de l'image peuvent se produire, telles que l'augmentation du contraste, la netteté ou vice versa, le flou de l'image pour éliminer le bruit et les petits détails mineurs. Tout cela est nécessaire pour faciliter l'analyse de l'image à l'avenir.
2. Filtration intermédiaire. A ce stade, différents filtres sont appliqués à l'image afin d'indiquer des zones d'intérêt sur l'image ou de faciliter le travail d'algorithmes spéciaux d'analyse d'images.
3. Révélation de signes spéciaux (caractéristiques).Cela peut être la sélection de points spéciaux, la sélection de contours ou d'autres fonctionnalités.
4. Analyse de haut niveau. A ce stade, en fonction des caractéristiques trouvées sur les images, des objets spécifiques sont déterminés et, en règle générale, leurs coordonnées. À ce stade également, une segmentation ou un autre traitement de haut niveau peut se produire.
Passons maintenant aux choses sérieuses. Nous examinerons le travail avec Python + OpenCV dans l'environnement PyCharm. Nous devons d'abord installer OpenCV. Pour ce faire, allez dans ImportSettings:
Ensuite, dans ProjectInterpreter et cliquez sur le signe plus là-bas:
Nous recherchons opencv là-bas et l'installons:
Nous allons maintenant écrire notre "Hello, World" - un programme qui affichera une image:
import cv2
my_photo = cv2.imread('MyPhoto.jpg')
cv2.imshow('MyPhoto', my_photo)
cv2.waitKey(0)
cv2.destroyAllWindows()
C'est la fenêtre que ce programme va ouvrir:
Que fait le programme? Il charge une image à partir d'un fichier, l'affiche et attend la sortie de la touche ESC.
Essayons quelque chose avec cette image. Par exemple, vous pouvez le redimensionner. Disons que nous voulons faire une image de 200 de large. Pour ce faire, calculons sa hauteur et utilisons ces données pour la mettre à l'échelle:
import cv2
my_photo = cv2.imread('MyPhoto.jpg')
cv2.imshow('MyPhoto', my_photo)
#
final_wide = 200
r = float(final_wide) / my_photo.shape[1]
dim = (final_wide, int(my_photo.shape[0] * r))
#
resized = cv2.resize(my_photo, dim, interpolation = cv2.INTER_AREA)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Voici ce que nous avons obtenu:
Souvent, pour faciliter l'analyse d'image, vous devez rendre l'image en noir et blanc. L'un des moyens consiste à télécharger une image à la fois dans un espace noir et blanc:
import cv2
img = cv2.imread('MyPhoto.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('MyPhoto', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Si vous avez besoin de convertir une image déjà chargée, vous pouvez utiliser la fonction cvtColor, qui convertit une image d'un espace colorimétrique à un autre:
import cv2
img = cv2.imread('MyPhoto.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('MyPhoto', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Voici à quoi cela ressemblera:
Donc, pour résumer.
Nous avons appris à installer OpenCV, à charger à partir d'un fichier et à afficher une image, ainsi qu'à y faire des transformations simples, telles que la mise à l'échelle et la conversion d'une image couleur en noir et blanc. Si cette leçon «arrive», elle se poursuivra.