Finden von Konturen in lauten BildernPython

Python-Programme
Anonymous
 Finden von Konturen in lauten Bildern

Post by Anonymous »

Ich versuche, die inneren Grenzen in diesem 8-Bit-Graustufenbild zu finden: < /p>

Code: Select all

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("C:/users/XXX/test.png", -1)

Ich habe mit verschiedenen morphologischen Operationen herumgespielt, aber ich scheine keine gute Arbeit zu finden. Der bisher vielversprechendste Ansatz: < /p>
Nach (einfach) Binarisierung erhalte ich Folgendes: < /p>

Code: Select all

img = (img > 0) * 1
img = img.astype('uint8')
plt.imshow(img, cmap = "gray", vmin = 0, vmax = 1)
plt.show()
plt.close()

Besser

Oder unter Verwendung einer leichten Unschärfe im Voraus:

Code: Select all

img = cv2.medianBlur(img, 3)
img = (img > 0) * 1
img = img.astype('uint8')
plt.imshow(img, cmap = "gray", vmin = 0, vmax = 1)
plt.show()
plt.close()

Schließen mit einem asymmetrischen Kernel.

Code: Select all

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (15,3))
imgClose = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
plt.imshow(imgClose, cmap = "gray", vmin = 0, vmax = 1)
plt.show()
plt.close()

Was ich erreichen möchte (rote Zeile von Hand):

Irgendeine Idee, wie man dorthin komme?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post