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 ! !

Lorsque Python a été utilisé comme outil de retouche photo, j'ai trouvé qu'il était vraiment simple à utiliser ! !

WBOY
WBOYavant
2023-04-13 22:10:011042parcourir

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.

  • Reconnaissance d'objets : jugement d'objets par la vision et le stockage interne
  • Segmentation d'image
  • Reconnaissance faciale
  • Conduite automobile sûre
  • Interaction homme-machine
  • Attendez

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.

Installation de modules​

Nous installons tous des modules via la commande pip.

pip install opencv-python
pip install opencv-contrib-python

Diverses opérations sur les images​

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.

Lire l'image

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)

Afficher l'image

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 :

  • name : représente le nom de la fenêtre d'affichage
  • img : La forme matricielle de l'image

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

Lorsque Python a été utilisé comme outil de retouche photo, jai trouvé quil était vraiment simple à utiliser ! !

Sauvegarde d'image

.

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 :

  • imgname : le nom de l'image à enregistrer
  • . img : l'image L'exemple de code sous forme matricielle

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()

Divers attributs des images​

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

Opérations de base sur les images

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

Lorsque Python a été utilisé comme outil de retouche photo, j'ai trouvé qu'il était vraiment simple à utiliser ! !

.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer