Maison >développement back-end >Tutoriel Python >Lorsque Python a été utilisé comme outil de retouche photo, j'ai trouvé qu'il était vraiment simple à utiliser ! !
Aujourd'hui, je vais partager avec vous l'application spécifique de Python dans le traitement d'images. Puisqu'il s'agit de traitement d'images, il faut mentionner le module opencv. Ce module prend en charge de nombreux algorithmes liés à la vision par ordinateur et à l'apprentissage automatique, et est utilisé dans le domaine en expansion. jour après jour, et il y a à peu près les champs suivants.
Bien sûr, l'éditeur ne prévoit pas cette fois-ci avec un tel contenu avancé, nous allons commencer aujourd'hui par les opérations de base sur les images en utilisant le module opencv le plus basique.
Nous installons tous des modules via la commande pip.
pip install opencv-python pip install opencv-contrib-python
Si vous avez étudié l'algèbre linéaire, la matrice positive n'est pas étrangère. Une image est essentiellement une matrice. Une image en niveaux de gris est une matrice ordinaire, tandis qu'une image couleur est une matrice multidimensionnelle. Nos opérations sur les images peuvent être naturellement converties en opérations sur les matrices.
Nous lisons d'abord l'image, en appelant la méthode cv2.imread(), son format de syntaxe est le suivant :
cv2.imread(filename, flag=1)
Le paramètre flag est utilisé pour définir le format de l'image lue, la valeur par défaut est 1 , ce qui signifie une lecture au format RVB à trois canaux. S'il est défini sur 0, cela signifie une lecture au format monocanal en niveaux de gris
import cv2 import numpy as np img=cv2.imread('1.jpg', 0)
Après avoir lu l'image, nous espérons pouvoir l'afficher. La méthode de fonction utilisée ici est cv2.imshow(). Son format de syntaxe est le suivant
cv2.imshow(name, img)
Les explications des paramètres sont les suivantes :
Nous essayons d'afficher l'image lue ci-dessus, le code est le suivant
cv2.imshow("grey_img", img) ## 如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数 cv2.destroyAllWindows()
Après avoir exécuté le code ci-dessus, nous pouvons constater que l'image apparaît dans un instant, mais elle ne nous a pas attendu Après avoir vu clairement ce que le à quoi ressemble l'image, fermez-la directement. La raison est que la méthode de fonction cv2.imshow() n'a pas d'effet de retard. Nous ajoutons une fonction de retard. Le code est le suivant
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.destroyAllWindows()
output
Enfin, nous sauvegardons l'image. La fonction utilisée ici est cv2.imwrite(). Son format de syntaxe est le suivant
cv2.imwrite(imgname, img)
Les explications des paramètres sont les suivantes :
est le suivant :
import cv2 import numpy as np img = cv2.imread('1.jpg') cv2.imshow("grey_img", img) cv2.waitKey(0) cv2.imwrite('1.png', img) cv2.destroyAllWindows()
Parfois, nous voulons connaître la taille en pixels de l'image, et l'essence de l'image est une matrice pour. Par exemple, une image de 1024 pixels * 960 pixels, cela signifie simplement que le nombre de lignes dans la matrice est de 960 et le nombre de colonnes est de 1024. La méthode fonction shape() appelée dans le module opencv a le code suivant :
import cv2 img = cv2.imread('1.jpg') print(img.shape[0]) # 行数 print(img.shape[1]) # 列数 print(img.shape[2]) # 通道数
output
308 340 3
Vous pouvez voir que les pixels de l'image sont de 340*380, le nombre de canaux est de 3. Pour les images en niveaux de gris, regardons les propriétés de l'image. Le code est le suivant :
.img = cv2.imread('1_grey.png', 0) print(img.shape)
output
(308, 340)
Vous pouvez voir que pour les images en niveaux de gris, nous ne voyons pas les canaux Nombre, seulement le nombre de lignes et de colonnes
Enfin, nous effectuerons quelques opérations de base sur l'image, qui n'est rien de plus que de changer certaines valeurs de pixels. Nous importons une image vierge et modifions les valeurs de pixels qu'elle contient. Ajoutez un point noir à l'intérieur du cercle, le code est le suivant
import cv2 import numpy as np img = cv2.imread('2.jpg') (x, y, z) = img.shape for i in range(-10, 10): for j in range(-10, 10): # Lorsque Python a été utilisé comme outil de retouche photo, jai trouvé quil était vraiment simple à utiliser ! !的正中心的位置来改变像素值, img[int(x/2) + i, int(y/2) + j] = (0, 0, 0) cv2.imshow("img", img) cv2.waitKey(0) cv2.destroyAllWindows()
sortie
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!