[Python] Verwenden von OpenCV mit Python (Basic)

Installieren (Anaconda)

Um das neueste OpenCV 3.1 ab Februar 2016 auf Anaconda zu installieren, laden Sie es von der folgenden Website herunter.

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

Importieren und überprüfen Sie die Version.

In [1]: import cv2

In [2]: print cv2.__version__
3.1.0

Bild laden

Lesen Sie das Bild mit cv2.imread. Zu diesem Zeitpunkt ist das Bild BGR. Wenn Sie versuchen, es mit matplotlib so anzuzeigen, wie es ist, ist die Farbe seltsam. Seien Sie also vorsichtig.

Wenn ein Bild mit sckit kimage oder scipy gelesen wird, wird es zu RGB.

Der Typ des geladenen Bildes ist Numpy Array.

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

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

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

Für PIL

In [8]: from PIL import Image

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

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

Für Scikit-Bild

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]

Für 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]

Für 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]

Bild speichern

Wenn Sie das Bild mit opencv speichern möchten, verwenden Sie imwrite.

imwrite(filename, img[, params])

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

Beim Speichern mit OpenCV müssen die Farben jedoch in der Reihenfolge BGR im Interleaved-Format angeordnet werden. Wenn Sie es so speichern, wie es ist, wird es wie folgt aussehen.

output.png

Bild anzeigen

Verwenden Sie imshow, um das Bild anzuzeigen.

imshow(winname, mat)

import cv2

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

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

Wenn Sie dies jedoch mit interaktivem Ipython tun, stirbt Ipython.

Bei Verwendung von ipython sollte startWindowThread zuerst ausgeführt werden, wie unten gezeigt.

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

Wenn Sie jedoch Bilder anzeigen möchten, ist es einfacher, matplotlib zu verwenden, es sei denn, Sie haben einen bestimmten Grund.

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

Farbkonvertierung

Wenn Sie das Bild mit opencv lesen, ist das Bild BGR. Sie müssen es daher in RGB konvertieren, um es mit matplotlib anzuzeigen. Verwenden Sie in diesem Fall 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] Verwenden von OpenCV mit Python (Basic)
Verwenden von OpenCV mit Python @Mac
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Grundlegendes Studium von OpenCV mit Python
Binarisierung mit OpenCV / Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
[S3] CRUD mit S3 unter Verwendung von Python [Python]
BASIC-Authentifizierung mit Python-Flasche
Verwenden von Quaternion mit Python ~ numpy-quaternion ~
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Gesichtserkennung mit Python + OpenCV
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Senden Sie mit Python mit Google Mail
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
Vervollständigung von Python mit Emacs mit Company-Jedi
Leuchtendes Leben mit Python und OpenCV
Harmonischer Mittelwert von Python (mit SciPy)
Neuronales Netzwerk mit OpenCV 3 und Python 3
Verwenden von Rstan aus Python mit PypeR
Scraping mit Selen in Python (Basic)
Einfache Python + OpenCV-Programmierung mit Canopy
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Laden Sie das GIF-Bild mit Python + OpenCV
Hinweise zur Verwendung von rstrip mit Python.
Finden Sie Bildähnlichkeit mit Python + OpenCV
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Verfolgen Sie Baseballbälle mit Python + OpenCV
Graphbasierte Segmentierung mit Python + OpenCV
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Zeichnen Sie einen Pfeil (Vektor) mit opencv / python
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
FizzBuzz in Python3
Scraping mit Python
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Statistik mit Python
Python2.7 + CentOS7 + OpenCV3
Hinter dem Flyer: Docker mit Python verwenden
Scraping mit Python
Python mit Go
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Socket-Kommunikation über Socket-Server mit Python jetzt
Bilder mit Pupil, Python und OpenCV aufnehmen
Twilio mit Python
In Python integrieren
Starten Sie Python
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Spielen Sie mit 2016-Python
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
AES256 mit Python
Überprüfen Sie die Aktienkurse mit Slackbot mit Python
Bildverarbeitung mit Python & OpenCV [Tonkurve]