[Python] Utilisation d'OpenCV avec Python (basique)

Installer (Anaconda)

Pour installer le dernier OpenCV 3.1 sur Anaconda à partir de février 2016, téléchargez-le sur le site suivant.

conda install --channel https://conda.anaconda.org/menpo opencv3

Importez et vérifiez la version.

In [1]: import cv2

In [2]: print cv2.__version__
3.1.0

Charger l'image

Lisez l'image avec cv2.imread. À ce moment, l'image est BGR. Si vous essayez de l'afficher avec matplotlib tel quel, la couleur sera étrange, alors soyez prudent.

Lorsqu'une image est lue avec sckit kimage ou scipy, elle devient RVB.

Le type de l'image chargée est le tableau numpy.

In [5]: I = cv2.imread('Lenna.bmp')

In [6]: I = cv2.imread('lena512color.tiff')

In [7]: type(I)
Out[7]: numpy.ndarray

Pour PIL

In [8]: from PIL import Image

In [9]: I = Image.open('Lenna.bmp')

In [10]: type(I)
Out[10]: PIL.BmpImagePlugin.BmpImageFile

Pour Scikit-image

In [11]: from skimage import io

In [12]: I = io.imread('Lenna.bmp')

In [13]: type(I)
Out[13]: numpy.ndarray

In [14]: Icv = cv2.imread('Lenna.bmp')

In [15]: print Icv[0,0,:]
[125 137 226]

In [16]: print I[0,0,:]
[226 137 125]

Pour Scypi

In [17]: from scipy import misc

In [18]: I = misc.imread('Lenna.bmp')

In [19]: type(I)
Out[19]: numpy.ndarray

In [20]: print I[0,0,:]
[226 137 125]

Pour matplotlib

In [21]: from matplotlib import image

In [22]: I = image.imread('Lenna.bmp')

In [23]: type(I)
Out[23]: numpy.ndarray

In [24]: print I[0,0,:]
[226 137 125]

Enregistrer l'image

Si vous souhaitez enregistrer l'image avec opencv, utilisez imwrite.

imwrite(filename, img[, params])

In [26]: cv2.imwrite('output.png', I)
Out[26]: True

Cependant, lors de l'enregistrement avec OpenCV, les couleurs doivent être disposées dans l'ordre BGR au format Interleaved. Si vous l'enregistrez tel quel, ce sera comme suit.

output.png

Afficher l'image

Utilisez imshow pour afficher l'image.

imshow(winname, mat)

import cv2

I = cv2.imread('./data/SIDBA/Lenna.bmp')

cv2.namedWindow('window')
cv2.imshow('window', I)
cv2.waitKey(0)
cv2.destroyAllWindows()

Cependant, si vous faites cela avec ipython interactif, ipython mourra.

Lorsque vous utilisez ipython, startWindowThread doit être exécuté en premier comme indiqué ci-dessous.

In [7]: I = cv2.imread('./data/SIDBA/Lenna.bmp')

In [8]: cv2.startWindowThread()
Out[8]: 1

In [9]: cv2.namedWindow('window')

In [10]: cv2.imshow('window', I)

In [11]: cv2.waitKey(0)
Out[11]: 10

In [12]: cv2.destroyAllWindows()

Cependant, si vous souhaitez afficher des images, il est plus facile d'utiliser matplotlib sauf si vous avez une raison spécifique.

In [12]: import matplotlib.pyplot as plt
    ...: import cv2
    ...: 
    ...: I = cv2.imread('./data/SIDBA/Lenna.bmp')
    ...: 
    ...: plt.imshow(cv2.cvtColor(I, cv2.COLOR_BGR2RGB))
    ...: plt.show()

範囲を選択_036.png

Conversion de couleur

Si vous lisez l'image avec opencv, l'image est BGR, vous devez donc la convertir en RVB pour l'afficher avec matplotlib. Dans un tel cas, utilisez cvtColor.

import numpy as np
import cv2
import matplotlib.pyplot as plt

I = cv2.imread('./data/SIDBA/Lenna.bmp')

J = cv2.cvtColor(I, cv2.COLOR_BGR2RGB)

plt.imshow(J)
plt.show()

Recommended Posts

[Python] Utilisation d'OpenCV avec Python (basique)
Utiliser OpenCV avec Python @Mac
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Etude de base d'OpenCV avec Python
Binarisation avec OpenCV / Python
"Traitement Apple" avec OpenCV3 + Python3
[S3] CRUD avec S3 utilisant Python [Python]
Authentification BASIC avec bouteille Python
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
Détection de visage avec Python + OpenCV
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Envoyer en utilisant Python avec Gmail
Essayez de projeter la conversion d'image en utilisant OpenCV avec Python
Compléter python avec emacs en utilisant company-jedi
Briller la vie avec Python et OpenCV
Moyenne harmonique par Python (en utilisant SciPy)
Réseau neuronal avec OpenCV 3 et Python 3
Utilisation de Rstan de Python avec PypeR
Scraping avec Selenium en Python (Basic)
Programmation facile Python + OpenCV avec Canopy
Essayez la reconnaissance faciale avec python + OpenCV
Découpez le visage avec Python + OpenCV
1. Statistiques apprises avec Python 1-1. Statistiques de base (Pandas)
Reconnaissance faciale avec caméra avec opencv3 + python2.7
Charger une image gif avec Python + OpenCV
Notes sur l'utilisation de rstrip avec python.
Trouver la similitude d'image avec Python + OpenCV
Utiliser OpenCV avec Python 3 dans Window
Dessinez une illustration avec Python + OpenCV
Suivre les balles de baseball avec Python + OpenCV
Segmentation basée sur un graphique avec Python + OpenCV
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
Dessinez une flèche (vecteur) avec opencv / python
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Détection de visage avec Python + OpenCV (rotation invariante)
FizzBuzz en Python3
Grattage avec Python
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Statistiques avec python
Python2.7 + CentOS7 + OpenCV3
Derrière le flyer: utiliser Docker avec Python
Grattage avec Python
Python avec Go
Essayez d'utiliser l'appareil photo avec OpenCV de Python
Communication de socket en utilisant le serveur de socket avec python maintenant
Capturer des images avec Pupil, python et OpenCV
Twilio avec Python
Intégrer avec Python
Commencez à utiliser Python
Essayez d'utiliser Python avec Google Cloud Functions
Jouez avec 2016-Python
J'ai essayé le rendu non réaliste avec Python + opencv
AES256 avec python
Vérifiez les cours des actions avec Slackbot en utilisant Python
Traitement d'image avec Python et OpenCV [Tone Curve]