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

WBOY
Libérer: 2023-04-13 22:10:01
avant
1008 Les gens l'ont consulté

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
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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()
Copier après la connexion

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()
Copier après la connexion

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)
Copier après la connexion

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()
Copier après la connexion

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]) # 通道数
Copier après la connexion

output

308
340
3
Copier après la connexion

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)
Copier après la connexion

output

(308, 340)
Copier après la connexion

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()
Copier après la connexion

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!