tutoriel opencv 1 lire et enregistrer des images

• Vous apprendrez ici comment lire une image, comment afficher une image et comment enregistrer une
image.
• Vous apprendrez les fonctions suivantes: cv2.imread (), cv2.imshow (), cv2.imwrite ()
• Si vous le souhaitez, je vais vous montrer comment utiliser Matplotlib pour afficher une image

Utilisez la fonction cv2.imread () pour lire l'image. L'image doit être dans le chemin de travail du programme
ou fournir le chemin d'accès complet à la fonction. Le
deuxième paramètre est d'indiquer à la fonction comment lire l'image.
• cv2.IMREAD_COLOR: lecture dans une image couleur. La transparence de l'image sera ignorée,
qui est le paramètre par défaut.
• cv2.IMREAD_GRAYSCALE:
lire dans une image en mode niveaux de gris cv2.IMREAD_UNCHANGED: lire dans une image, et inclure le canal alpha de l'image

 import numpy as np
 import cv2
 # Load an color image in grayscale
  img = cv2.imread('messi5.jpg',0)

Insérez la description de l'image ici
4.2 Affichage de l'image
Utilisez la fonction cv2.imshow () pour afficher l'image. La fenêtre s'ajustera automatiquement à la taille de l'image. Le premier
paramètre est le nom de la fenêtre et le second est notre image. Vous pouvez créer autant de fenêtres que vous le souhaitez, mais vous devez leur donner des noms différents

cv2.imshow('image',img)
cv2.waitKey(0) 
cv2.destroyAllWindows()

Insérez la description de l'image ici
cv2.waitKey () est une fonction de liaison de clavier. Il faut souligner que son échelle de temps est de l'ordre de la milliseconde
. La fonction attend un certain nombre de millisecondes pour voir s'il y a une entrée au clavier. En quelques millisecondes, si une touche est enfoncée, cette fonction renverra la valeur de code ASCII de la touche et le programme continuera à s'exécuter. S'il n'y a pas d'entrée au clavier, revenez à la valeur -1, si nous définissons les paramètres de cette fonction sur zéro, alors elle attendra indéfiniment l'entrée au clavier. Il peut également être utilisé pour détecter si une touche spécifique est enfoncée, par exemple si le bouton a est enfoncé, nous en discuterons plus tard.
cv2.destroyAllWindows () peut facilement supprimer toutes les fenêtres que nous avons créées. Si
vous souhaitez supprimer une fenêtre spécifique, vous pouvez utiliser cv2.destroyWindow (), entrez le
nom de la fenêtre que vous souhaitez supprimer entre parenthèses

Suggestion: Dans un cas particulier, vous pouvez également créer d'abord une fenêtre,
puis charger l'image. Dans ce cas, vous pouvez décider si la fenêtre peut être redimensionnée
. La fonction utilisée est cv2.namedWindow (). Le
libellé de la fonction de réglage initial est cv2.WINDOW_AUTOSIZE. Mais si vous changez le libellé en
cv2.WINDOW_NORMAL, vous pouvez ajuster la taille de la fenêtre. Lorsque la dimension de l'image est trop grande,
ou lorsque vous souhaitez ajouter une barre de piste, il sera utile d'ajuster la taille de la fenêtre

3 Enregistrer l'image
Utilisez la fonction cv2.imwrite () pour enregistrer une image. Vous avez d'abord besoin d'un nom de fichier, puis de
l'image que vous souhaitez enregistrer.

cv2.imwrite('messigray.png',img)

Le programme suivant chargera une image en niveaux de gris, affichera l'image, appuyez sur la touche 'pour enregistrer puis quitter, ou
appuyez sur la touche ESC pour quitter sans enregistrer


```cpp
# -*- coding: utf-8 -*-
 """
 Created on Wed Jan 1 20:49:33 2014
 @author: duan
 """
 import numpy as np
 import cv2

img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
1cv2.imwrite('messigray.png',img)
cv2.destroyAllWindows()
使用 Matplotlib
Matplotib 是 python 的一个绘图库,里头有各种各样的绘图方法。之后
会陆续了解到。现在,你可以学习怎样用 Matplotib 显示图像。你可以放大图
像,保存它等等。

```cpp
 # -*- coding: utf-8 -*-
"""
Created on Wed Jan 1 20:49:33 2014
 @author: duan
"""
import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('messi5.jpg',0)
 plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
 plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()

Insérez la description de l'image ici
Voir: Matplotib a une variété d'options de traçage. Voir la documentation Matplotib pour plus de détails. Nous
apprendrons également quelques notes l'une après l'autre: ** Les images couleur sont chargées en mode BGR lors de l'utilisation d'OpenCV. Mais Matplotib est en mode RVB. ** Donc, si l'image couleur a été lue par OpenCV, elle ne sera pas affichée correctement par Matplotib. Veuillez consulter l'exercice pour plus de détails.

Je suppose que tu aimes

Origine blog.csdn.net/qq_43543515/article/details/115266040
conseillé
Classement