Heim  >  Artikel  >  Backend-Entwicklung  >  Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

不言
不言Original
2018-09-08 17:28:143455Durchsuche

Dieser Artikel vermittelt Ihnen die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV. Ich hoffe, dass er für Freunde hilfreich ist.

1. Grundkenntnisse über Bilder

Bilder bestehen aus Pixeln, also kleinen Quadraten im Bild, denen eine klare Position und Farbwerte zugeordnet sind , und die Farbe und Position dieser kleinen Quadrate bestimmen, wie das Bild erscheint. Pixel ist die kleinste Einheit in einem Bild. Jedes Bitmap-Bild enthält eine bestimmte Anzahl von Pixeln, die die Größe des Bildes auf dem Bildschirm bestimmen.

Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

Bilder umfassen normalerweise Binärbilder, Graustufenbilder und Farbbilder.


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV


1. Binärbild
Binärbild Jeder Punkt in ist entweder schwarz oder weiß, entweder weiß (Pixel ist 255) oder schwarz (Pixel ist 0). Der Prozess der Konvertierung eines Graustufenbilds in ein Binärbild wird häufig durch sequentielle Durchlaufbeurteilung implementiert. Wenn die Pixel >= 127 sind, wird sie auf 255 gesetzt, andernfalls wird sie auf 0 gesetzt.


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

2. Graustufenbild
Graustufenbilder haben zusätzlich zu Schwarz und Weiß auch Grau, das Grau kombiniert Der Grad ist in 256 verschiedene Farben unterteilt und das Bild wirkt klarer. Das Konvertieren von Farbbildern in Graustufenbilder ist der grundlegendste Vorverarbeitungsvorgang für die Bildverarbeitung, der normalerweise die folgenden Methoden umfasst:
(1) Gleitkomma-Algorithmus: Gray=R*0,3+G*0,59+B*0,11
( 2) Ganzzahlmethode: Gray=(R*30+G*59+B*11)/100
(3) Verschiebungsmethode: Gray=(R*28+G*151+B*77)> ;> 8;
(4) Durchschnittsmethode: Gray=(R+G+B)/3; (Dieses Programm verwendet einen Algorithmus)
(5) Nimm nur Grün: Gray=G; Durchschnittsalgorithmus: Gemäß den Helligkeitseigenschaften des Lichts lautet die Formel: R=G=B=R*0,299+G*0,587+B0,144

Ersetzen Sie das R, nachdem Sie Grau durch eine der oben genannten Methoden erhalten haben , G, B im ursprünglichen RGB (R, G, B) mit Grau, um ein neues Farb-RGB (Grau, Grau, Grau) zu bilden. Verwenden Sie es, um das ursprüngliche RGB-Bild (R, G, B) zu ersetzen. Ändern Sie die RGB-Werte der Pixelmatrix, um das Farbbild in ein Graustufenbild umzuwandeln.


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

3. Farbbild Farbbild ist ein RGB-Bild, RGB repräsentiert die drei Primärfarben Rot, Grün und Blau , alle Farben im Computer Sie bestehen alle aus drei Primärfarben in unterschiedlichen Anteilen, also drei Farbkanälen.


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV


2. OpenCV-Bilder lesen und schreiben

Dieser Artikel verwendet hauptsächlich Python2.7 und OpenCV Rufen Sie zur Erläuterung zunächst „pip install opencv-python“ auf, um die OpenCV-Bibliothek zu installieren, wie unten gezeigt:


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

1 Lesen Sie die Bild OpenCV liest Bilder hauptsächlich durch Aufrufen der folgenden Funktionen:

img = cv2.imread(file name, [, parameter])

Parameter (1) cv2.IMREAD_UNCHANGED (Bild unveränderlich)
Parameter (2) cv2.IMREAD_GRAYSCALE (Graustufenbild)
Parameter (3) cv2.IMREAD_COLOR (Farbbild lesen)
Parameter (4) cv2.COLOR_BGR2RGB (Bildkanal BGR konvertiert in RGB)

2. Bild anzeigen Die Funktion zum Anzeigen des Bildaufrufs lautet wie folgt:

cv2 .imshow( Fenstername, Bildname)

3. Fensterwartezeit Die aufrufende Funktion lautet wie folgt:

cv2.waitKey(delay)

Die Tastaturbindungsfunktion hat einen Parameter, der die Anzahl der zu wartenden Millisekunden angibt. Sie wartet eine bestimmte Anzahl von Millisekunden, um zu sehen, ob eine Eingabe von der Tastatur erfolgt, und der Rückgabewert ist ein ASCII-Wert. Wenn der Parameter 0 ist, bedeutet dies, dass auf unbestimmte Zeit auf Tastatureingaben gewartet wird; Parameter >0 bedeutet, auf Verzögerungsmillionen zu warten; Parameter

4. Alle Fenster löschen Rufen Sie die Funktion wie folgt auf:

cv2.destroyAllWindows() Alle Fenster löschen

cv2.destroyWindows() löscht das angegebene Fenster

5. Schreiben Sie das Bild Rufen Sie die Funktion wie folgt auf:

retval = cv2.imwrite(file address, Dateiname)

Der folgende Code liest das Bild ein, zeigt es an und speichert es.

# -*- 
coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg")
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

Das Ausgabeergebnis ist wie in der Abbildung unten dargestellt und ein Bild mit dem Namen „testyxz.jpg“ wird im Ordner gespeichert.


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV


Wenn der Code keine watiKey(0)-Funktion enthält, sieht das Laufergebnis wie folgt aus:


Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

同时
可以对代码进行升级,如下所示:

#无限期等待输入
k=cv2.waitKey(0)
#如果输入ESC退出
if k==27:
    cv2.destroyAllWindows()

三.OpenCV像素处理

1.读取像素
灰度图像直接返回灰度值,彩色图像则返回B、G、R三个分量。注意OpenCV读取图像是BGR存储显示,需要转换为RGB再进行图像处理。

灰度图像:返回值 = 图像(位置参数)
 eg: test=img[88,42]  
 彩色图像:返回值 = 图像[位置元素, 0 | 1 | 2 ] 获取BGR三个通道像素
 eg: blue=img[88,142,0] green=img[88,142,1] red=img[88,142,2]

2.修改图像
修改图像如果是灰度图像则直接赋值新像素即可,彩色图像依次给三个值赋值即可。

灰度图像:
 img[88,142] = 255
 彩色图像:
 img[88,142, 0] = 255
 img[88,142, 1] = 255
 img[88,142, 2] = 255
 彩色图像:方法二
 img[88,142] = [255, 255, 255]

下面代码是获取像素及修改的操作。

# -*- coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)
test = img[88,142]print test
img[88,142] = [255, 255, 255]print test
#分别获取BGR通道像素
blue = img[88,142,0]print blue
green = img[88,142,1]print green
red = img[88,142,2]print red
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

输出结果如下所示:
[158 107  64]
[255 255 255]
255
255
255

下面代码是将行为100到200、列150到250的像素区域设置为白色。

# -*- coding:utf-8 -*-import cv2
#读取图片
img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED)
#该区域设置为白色
img[100:200, 150:250] = [255,255,255]
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
#写入图像
cv2.imwrite("testyxz.jpg", img)

运行结果如下图所示:

Die Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV

相关推荐:

Python编程中使用Pillow来处理图像的基础教程

Python零基础入门之八lambda的表达式和filter、map内置函数

Python基于opencv的图像压缩算法实例分析

Das obige ist der detaillierte Inhalt vonDie Grundlagen der Python-Bildverarbeitung und die Einführungsfunktionen von OpenCV. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn