Grundlegende Funktionsweise von Opencv

1. Bildfüllung

Definieren Sie zunächst die Bildanzeigefunktion:

def cv_show(name, img):
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

Bild lautete:

img_cat = cv2.imread('cat.jpg')

Definieren Sie die Größe des Bildabstands:

top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

 Als nächstes verwenden Sie zum Füllen die Kopiermethode, die Reflexionsmethode, die Umverpackungsmethode und die konstante Methode.

Kopiermethode:

# 复制法,复制最边缘像素
replicate = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)

Reflexionsmethode: 

# 反射法,对感兴趣的图像中的像素在两边进行复制
reflect = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)

zweite Reflexionsmethode

# 反射法,也就是以最边缘像素为周,对称
reflect101 = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size,
                                borderType=cv2.BORDER_REFLECT_101)

Verpackungsmethode:

# 外包装法
warp = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)

Konstante Methode:

# 常量法,常数值填充,此处填充灰色
constant = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT,
                              value=0)

Die Ausgabeergebnisse werden wie folgt verglichen:

 

 2. Morphologische Operation

Lesen Sie zunächst das Rohbild ein:

pie = cv2.imread('pie.jfif')

 

 

Definieren Sie den Faltungskern:

kernel = np.ones((10, 10), np.uint8)

Korrosionsfunktion:

dige_erosion = cv2.erode(pie, kernel=kernel, iterations=1)

Die Ausgabe ist wie folgt:

 

Inflationsfunktion:

dige_dilate = cv2.dilate(pie, kernel=kernel, iterations=1)

Die Ausgabe ist wie folgt:

Offene Operation: Zuerst korrodieren und dann erweitern

opening = cv2.morphologyEx(pie, cv2.MORPH_OPEN, kernel=kernel)

Die Ausgabe ist wie folgt:

Geschlossener Betrieb: Erst ausdehnen und dann korrodieren

closing = cv2.morphologyEx(pie, cv2.MORPH_CLOSE, kernel=kernel)

Die Ausgabe ist wie folgt:

 

Gradient: Dilatation-Erosion

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)

Die Ausgabe ist wie folgt:

Zylinder: Originaleingabe – Ergebnis öffnen

tophat = cv2.morphologyEx(pie, cv2.MORPH_TOPHAT, kernel)

Die Ausgabe ist wie folgt:

Black Hat: Geschlossener Betrieb – Roheingabe

blackhat = cv2.morphologyEx(pie, cv2.MORPH_BLACKHAT, kernel)

Die Ausgabe ist wie folgt:

 3. Bildglättung

Übergeben Sie das Rohbild:

Mittelwertfilterung: Eine einfache Durchschnittsfaltungsoperation

blur = cv2.blur(cat, (3, 3))

 Box-Filterung: Im Grunde dasselbe wie der Mittelwert. Sie können die Normalisierung auswählen und normalisieren, wenn die Normalisierung wahr ist, genau wie der Mittelwertfilter

box = cv2.boxFilter(cat, -1, (3, 3), normalize=True)

 

 Wenn die Normalisierung den Wert „Falsch“ hat, wird keine Normalisierung und keine Mittelwertverarbeitung durchgeführt. Nach dem Überschreiten der Grenze wird 255 genommen

box = cv2.boxFilter(cat, -1, (3, 3), normalize=False)

 Gaußsche Filterung: Der Wert im Faltungskern der Gaußschen Unschärfe erfüllt die Gaußsche Verteilung, was einer stärkeren Aufmerksamkeit für die Mitte entspricht

gaussian = cv2.GaussianBlur(cat, (3, 3), 1)

Medianfilterung: entspricht dem Ersetzen durch den Median

median = cv2.medianBlur(cat, 3)

 

Ich denke du magst

Origin blog.csdn.net/m0_51864191/article/details/128243407
Empfohlen
Rangfolge