teneur
Après avoir lu beaucoup de livres et de documents sur le traitement d'image, je vais résumer les points de connaissance liés au traitement d'image, afin d'augmenter l'impression et d'utiliser ces connaissances à l'avenir.
On pense que le concept d'image est familier à la plupart des gens. Si vous voulez qu'un ordinateur traite une image, il s'agit bien sûr de convertir une image en un nombre pour la représenter. Une image est composée de valeurs de pixels. traitement, et le terme traitement d'image en est également dérivé.
(1) Lire l'image
OpenCV est une puissante bibliothèque de fonctions de traitement d'image. Il encapsule chaque fonction dans une fonction. Nous pouvons traiter directement notre image à travers la fonction.
cv2.imread (nom de l'image, paramètres)
où picturename est le nom de l'image que nous lisons,
La valeur des paramètres peut prendre -1, 0, 1, 2, 4, 8 pour marquer le type de fichier image à lire
Lorsque -1 est pris : le format d'origine de l'image est lu
Lorsque 0 : ajuste l'image à une image en niveaux de gris à un seul canal
Lorsque 1 est pris : ajustez l'image sur une image RVB à trois canaux, s'il n'y a pas de paramètre paramètre, la valeur par défaut est de prendre 1
En prise 2 : inchangée si la profondeur de l'image est de 16 ou 32, sinon convertie en image 8 bits
Lors de la prise 4 : lisez l'image dans toutes les couleurs possibles
Lors de la prise 8 : utilisez le pilote gdal pour charger l'image
Il n'est pas nécessaire de mémoriser ces valeurs. Lorsque vous les utilisez, vous pouvez les vérifier. La valeur par défaut est 1.
Exemple:
import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
print(picture)
résultat:
Le 255 suivant est la valeur de chaque pixel représenté, c'est-à-dire la valeur de pixel, indiquant que l'image a été lue avec succès.
(2) Afficher l'image
Après avoir lu l'image, ce que nous imprimons est une matrice matricielle composée de nombres, comment la présenter sous la forme d'une image ? Utilisez la fonction suivante :
imshow('nom de la fenêtre',nom de l'image)
windowsname signifie le nom de la fenêtre, c'est-à-dire que l'image que vous afficherez occupe une fenêtre, vous pouvez alors donner à cette fenêtre un alias windowsname, comme le nom de la fenêtre lession1 dans la capture d'écran ci-dessous.
picturename est le fichier image que nous avons lu dans imread ci-dessus.
Exemple:
import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
key = cv2.waitKey(0)
Résultat : si la touche d'attente n'est pas utilisée, l'image clignotera. Ce qui suit présentera l'utilité de cette fonction
Parlons de la fonction waitkey
reval = waitKey(temps)
time représente le temps d'attente pour que l'utilisateur appuie sur le clavier. S'il n'y a pas un tel temps, la valeur par défaut est 0. Lorsque la valeur est 0 ou un nombre complexe, cela signifie qu'il a attendu que l'utilisateur appuie sur le clavier Si vous n'appuyez pas sur le clavier, le programme s'arrêtera.
reval indique la valeur retournée. Si le clavier n'est pas appuyé, la valeur de retour est -1. Si une touche est appuyée, la valeur correspondant au code ascii correspondant à la touche est affichée.
Ensuite, nous utilisons un exemple pour illustrer la fonction de cette fonction
import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
# 当程序执行到这里的时候,我希望用户按下键盘的任意键,否则的话,我下面打印的这句话不会执行
key = cv2.waitKey(0)
print('我按下键盘之后我才能执行这句话哦')
résultat:
Il existe deux autres fonctions que tout le monde connaît.
Fermer une fenêtre destroyWindow(picturename),
Ferme toutes les fenêtres actuellement affichées destroyAllWindows()
D'après le nom de la fonction, nous devrions pouvoir voir que cela signifie fermer la fenêtre de l'image que nous affichons, une ou toutes.
(3) Enregistrer l'image
imwrite('chemin',nomimage)
Le nom du chemin indique dans quel dossier vous souhaitez enregistrer. Vous pouvez utiliser un chemin absolu ou un chemin relatif. Il inclut également l'extension de l'image, qui est le format de l'enregistrement. Si l'extension n'est pas écrite, vous pouvez l'utiliser séparément après le nom de l'image Spécifie le suffixe du format d'enregistrement.
picturename est le fichier image que nous voulons enregistrer
Exemple:
import cv2
pictureName = r'C:\Users\LBS\Desktop\01.jpg'
picture = cv2.imread(pictureName, 1)
cv2.imshow('lession1', picture)
cv2.imwrite('picture01.jpg', picture)
Résultat : le chemin que j'enregistre est le dossier dans lequel le programme actuel est écrit, il me suffit donc de l'enregistrer sous un autre nom. Si je veux enregistrer dans un autre dossier, j'aurai peut-être besoin du préfixe C:\Destop\. ..etc.
Résumé : Ce qui précède est la première note sur le traitement d'image. Regardons mon temps personnel. Si j'en ai la capacité, je résumerai les points de connaissance pertinents dans des notes pour votre référence.
Veuillez indiquer la source.
Le prochain article porte sur les bases du traitement d'image.