Dies war das Bild, das nach der Gabor-Filterung erhalten wurde ... Gibt es eine Möglichkeit, die Linien im Bild zu entfernen, mit Ausnahme des hellweißen, abgerundeten Fehlers?
Habe versucht eine andere Ausrichtung des Gabor-Filters zu folgendem Ergebnis:
Nach dem Schwellenwert: Was in Ordnung genug ist, aber nicht großartig
Nach der Medianfilterung:
Danke im Voraus
Antworten:
Wenn die Ausgabe Ihres Gábor-Filters zuverlässig ist und die Variation Ihrer Bilddaten nicht so hoch ist, dass das Ergebnis völlig anders aussieht, können Sie den folgenden Ansatz verwenden (Teile davon wurden bereits erwähnt):
Binarisieren Sie Ihr zweites Bild mit einem beliebigen automatischen Schwellenwertalgorithmus. Wie Sie sehen werden, ist der Bereich der Schwellenwerte, die funktionieren, groß.
Verwenden Sie einen Komponentenbeschriftungsalgorithmus, um jeden verbundenen Pixelbereich mit einem eindeutigen Wert zu kennzeichnen.
Berechnen Sie für jede Komponente Ihres Bildes eine Eigenschaft, die beschreibt, wie nahe Ihr Objekt an einem gefüllten Kreis liegt. Hierfür können Sie beispielsweise die Kompaktheit nutzen . Ich habe unterhalb des Pixelanteils innerhalb des äquivalenten Plattenradius verwendet . Dieser Radius ist der Radius einer Festplatte mit derselben Fläche wie Ihr Objekt.
Um zu sehen, dass eine automatische Binärisierung funktionieren sollte, sind hier die Ergebnisse für einen sehr niedrigen und einen sehr hohen Schwellenwert:
Komponentenbeschriftung aktualisieren
Die Wahl der Komponentenkennzeichnung ist für Ihre Anwendung nicht kritisch. Ich würde vorschlagen, wenn Sie es selbst implementieren müssen, eine sehr einfache Methode zu verwenden. Die One-Pass-Version von der Wikipedia-Site ist sehr einfach. Grundsätzlich durchlaufen Sie Ihr Binärbild und wenn Sie auf ein Pixel treffen, das weiß ist und noch nicht beschriftet ist, verwenden Sie eine neue Beschriftung für dieses Objekt und beginnen mit diesem Pixel.
Das Beschriften dieses Objekts mit einem Etikett ähnelt im Wesentlichen einer Flutfüllung. Dies ist auf der Wikipedia-Seite die inneren Schritte 1-4 im Algorithmus. Sie beginnen mit diesem beschrifteten Pixel und legen alle seine Nachbarn auf einen Stapel (sie haben einen Vektor verwendet ). Für ein Pixel auf dem Stapel prüfen Sie, ob es im Vordergrund steht und noch nicht beschriftet ist. Wenn Sie es beschriften müssen, legen Sie erneut alle Nachbarn auf den Stapel. Tun Sie dies, bis Ihr Stapel leer ist.
Dann setzen Sie Ihren Scan durch das Bild fort. Im Gegensatz zur Beschreibung auf der Wiki-Site müssen Sie kein Pixel aus Ihrem Originalbild entfernen. Sie überspringen nur, wenn Sie einen anderen Wert als 0 in Ihrem Etikettenbild haben.
quelle
Ein paar Ideen:
BEARBEITEN: Nach Ihrem mittleren Filterungsschritt sind Sie den größten Teil des Weges dorthin. Gut gemacht! Punkt 2, den ich oben vorgeschlagen habe (schließen, dann Regionsbeschriftung), ist eine Technik, die Sie den Rest des Weges führt.
quelle
Sie können aktive Konturen ausprobieren. Obwohl es vielleicht langsam ist, kann es komplizierte Fälle wie diesen behandeln.
Oder Sie können Vorkenntnisse verwenden, um dieses Bild zu verarbeiten. Zum Beispiel wissen Sie, dass das Blob-Ding "groß" und "verbunden" ist. Wenn Sie also die Nummer jeder verbundenen Region zählen, können Sie sie finden.
quelle