Finden von Konturen in lauten Bildern

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Finden von Konturen in lauten Bildern

by Anonymous » 02 Jun 2025, 18:25

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?

Top