Heim >Backend-Entwicklung >Python-Tutorial >Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

WBOY
WBOYnach vorne
2023-05-28 15:16:061467Durchsuche

1. Korrosion und Ausdehnung 1 Korrosionsrunde ~ (Iterationen = 1)

import cv2
import numpy as np

img = cv2.imread('DataPreprocessing/img/dige.png')

cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Korrosionsergebnis-Anzeigebild 2:

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Die Wirkung mehrerer Korrosionskreise und das Korrosionsprinzip

kernel = np.ones((3, 3), np.uint8)
erosion = cv2.erode(img, kernel, iterations=1)

cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

pie.png

Originalbild 3:

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Korrosionsprinzip, bei dem das Korrosionsprinzip des Filters gilt: Je größer die Größe, desto größer der Korrosionsgrad

Abbildung 4

:

pie = cv2.imread('DataPreprocessing/img/pie.png')

cv2.imshow('pie', pie)
cv2.waitKey(0)
cv2.destroyAllWindows()

Anzeige von drei Ergebnissen kreisförmiger KorrosionWas ist die Operationsmethode der Morphologie in Python+OpenCV?Abbildung 5:

1.2 ErweiterungsvorgangWas ist die Operationsmethode der Morphologie in Python+OpenCV?

kernel = np.ones((30, 30), np.uint8)
erosion_1 = cv2.erode(pie, kernel, iterations=1)
erosion_2 = cv2.erode(pie, kernel, iterations=2)
erosion_3 = cv2.erode(pie, kernel, iterations=3)
res = np.hstack((erosion_1, erosion_2, erosion_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

Vor der Erweiterung wurde in Abbildung 2 festgestellt, dass die Linien dicker wurden. Die Linien sind im Vergleich zum Originalbild fast gleich, aber das Rauschen dieser langbärtigen Geräte ist verschwunden

Bild 6 :

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Der Effekt der mehrmaligen Erweiterung des Kreises und das Erweiterungsprinzip sind das Gegenteil von Korrosion. Der Filter mit weißen Flecken wird alle weiß

kernel = np.ones((3, 3), np.uint8)
dige_dilate = erosion
dige_dilate = cv2.dilate(erosion, kernel, iterations=1)

cv2.imshow('dilate', dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

Ergebnisse der dreifachen Erweiterung ,

Abbildung 7:

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

2. Öffnungsvorgang und Schließvorgang

2.1 Öffnungsvorgang

pie = cv2.imread('DataPreprocessing/img/pie.png')

kernel = np.ones((30, 30), np.uint8)
dilate_1 = cv2.dilate(pie, kernel, iterations=1)
dilate_2 = cv2.dilate(pie, kernel, iterations=2)
dilate_3 = cv2.dilate(pie, kernel, iterations=3)
res = np.hstack((dilate_1, dilate_2, dilate_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
Ändern Sie das Originalbild 1, korrodieren Sie zuerst, erweitern Sie es dann und erhalten Sie das Ergebnis des ÖffnungsvorgangsAbbildung 8:

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

2.2 Geschlossener Vorgang

# 开:先腐蚀,再膨胀
img = cv2.imread('DataPreprocessing/img/dige.png')

kernel = np.ones((5, 5), np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

cv2.imshow('opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

Erweitern Sie zuerst das Originalbild 1 und korrodieren Sie dann, um das Ergebnis des offenen Vorgangs zu erhalten Führen Sie im Originalbild 3 eine fünffache Erweiterung und eine fünffache Erosion durch und subtrahieren Sie, um das Ergebnis der Gradientenoperation zu erhalten. Abbildung 10: Zylinder und schwarzer Hut

4.1 Top-Hat

Top-Hat = ursprüngliche Eingabe – Operationsergebnis öffnen

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

# 闭:先膨胀,再腐蚀
img = cv2.imread('DataPreprocessing/img/dige.png')

kernel = np.ones((5, 5), np.uint8)
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()

Top-Hat-Ergebnis abrufen

Abbildung 11:

4.2 Black-Hat Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Black-Hat = geschlossene Operation – ursprüngliche Eingabe

# 梯度=膨胀-腐蚀
pie = cv2.imread('DataPreprocessing/img/pie.png')
kernel = np.ones((7, 7), np.uint8)
dilate = cv2.dilate(pie, kernel, iterations=5)
erosion = cv2.erode(pie, kernel, iterations=5)

res = np.hstack((dilate, erosion))

cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

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

cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

um das Zylinderhut-Ergebnis zu erhalten

Bild 12:

Was ist die Operationsmethode der Morphologie in Python+OpenCV?

Das obige ist der detaillierte Inhalt vonWas ist die Operationsmethode der Morphologie in Python+OpenCV?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen