Heim > Artikel > Backend-Entwicklung > Was ist die Operationsmethode der Morphologie in Python+OpenCV?
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()
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:
Korrosionsprinzip, bei dem das Korrosionsprinzip des Filters gilt: Je größer die Größe, desto größer der KorrosionsgradAbbildung 4
:pie = cv2.imread('DataPreprocessing/img/pie.png') cv2.imshow('pie', pie) cv2.waitKey(0) cv2.destroyAllWindows()
Anzeige von drei Ergebnissen kreisförmiger KorrosionAbbildung 5:
1.2 Erweiterungsvorgang
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 :
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()
Abbildung 7:
2. Öffnungsvorgang und Schließvorgang2.1 Öffnungsvorgangpie = 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: 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()
4.1 Top-Hat
Top-Hat = ursprüngliche Eingabe – Operationsergebnis öffnen# 闭:先膨胀,再腐蚀 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
4.2 Black-Hat
# 梯度=膨胀-腐蚀 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:
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!