2016-07-09 3 views
0

Die Abstandstransformation liefert die Entfernung jedes Pixels vom nächsten Rand-/Kontur-/Hintergrundpixel. Ich möchte nicht die kürzeste Entfernung, aber ich möchte ein durchschnittliches Maß für den Abstand des Pixels von der Grenze/Kontur in alle Richtungen erhalten. Irgendwelche Vorschläge zum Berechnen dieser Abstandstransformation würden geschätzt werden. Wenn es irgendwelche existierenden Algorithmen und/oder effizienten C++ - Code gibt, um eine solche Distanz-Transformation zu berechnen, wäre das auch wunderbar.Wie finde ich die Transformation mit durchschnittlicher Entfernung eines binären Bildes?

+0

Haben Sie die OpenCV-Funktion überprüft: distanceTransform und Matlab-Funktion: bwdist in? – Rotem

Antwort

0

Wenn Sie ein binäres Bild der Konturen haben, können Sie die Anzahl der Begrenzungspixel um jedes Pixel in einigen Fenstern berechnen (z. B. das Integralbild oder cv::blur). Dies würde Ihnen etwas geben, was Sie wollen.

Sie könnten das mit der Normalisierung der Abstandstransformation für durchschnittliche Entfernungen kombinieren.

+1

Hmm .. klingt nach einer vernünftigen Idee. Ich werde es versuchen. Ja, ich habe ein binäres Bild der Konturen. Aber Ihre Lösung würde keine richtigen Abstände für Pixel erzeugen, die weiter als die Fenstergröße von den Konturen entfernt sind. – Prakhar

0

Wenn Sie das "durchschnittliche Maß der Entfernung des Pixels von der Grenze/Kontur in allen Richtungen" wollen, dann habe ich Angst, dass Sie die Kontur extrahieren müssen und für jedes Pixel innerhalb des Musters müssen Sie den Durchschnitt berechnen Abstand zu den Pixeln, die zur Kontur gehören. Eine Heuristik für eine "grobe" Approximation wäre es, viele Entfernungskarten unter Verwendung von Quellpunkten zu berechnen (sie könnten die Extremitäten des Musters sein), und für jedes Pixel innerhalb des Musters berechnen Sie dann die Summe aller Abstände von den Distanzkarten. Aber um das genaue Maß zu haben, müssten Sie so viele Entfernungskarten berechnen wie Pixel, die zur Kontur gehören. Aber wenn eine Annäherung "in Ordnung" ist, wird dies die Verarbeitung beschleunigen.

Verwandte Themen