Frage

Ich bin auf der Suche nach einer Möglichkeit, programmatisch den folgenden Effekt zu erstellen:

Geben Sie ein Eingabebild:
Eingangs http://www.shiny.co.il/shooshx/ConeCarv/q_input .png

Ich möchte iterativ den „Hub“ Effekt anwenden.
Der erste Schritt sieht wie folgt aus:
Schritt 1 http://www.shiny.co.il/shooshx/ConeCarv/ q_step1.png

Der zweite Schritt wie folgt aus:
alt text http://www.shiny.co.il/shooshx/ConeCarv/ q_step2.png

Und so weiter.

Ich gehe davon aus diesem Willen eine Art Kantenerkennung beinhaltet und dann irgendwie die Kante zu verfolgen.
Gibt es einen bekannten Algorithmus dies in einer effizienten und robusten Art und Weise zu tun?

War es hilfreich?

Lösung

Im Grunde ein benutzerdefinierter Algorithmus wäre, nach diesem fädeln :

  

Nehmen Sie die 3x3-Nachbarschaft um ein Pixel, Schwelle Alphakanal, und dann sehen, wenn eine der 8 Pixel um das Pixel einen anderen Alpha-Wert von ihm hat. Wenn so ein Lack   Kreis mit einem bestimmten Radius mit dem Mittelpunkt des Pixel. Zu tun, innen / außen, moduliert durch die schwellenwertAlphaKanal (negieren, die andere Seite zu tun). Sie werden eine größere Nähe zu Schwelle haben, wenn der Kreisradius größer als ein Pixel ist (die es wahrscheinlich ist).


  

Dies wird Graustufen morphologische Operationen realisiert. Dies ist auch die gleiche Technik zu erweitern / Objektauswahl verwendet. Grundsätzlich Schlaganfall das Zentrum einer Auswahl (oder einem Alpha-Kanal), was man tun würde, ist es, zuerst zwei separate Kopien der Auswahl zu treffen. Die erste Auswahl würde durch den Radius des Hubes erweitert werden, wohingegen der zweite kontrahiert werden würde. Die Trübung des Hubs dann erhalten werden, würde die zweite Auswahl von der ersten durch Subtraktion.

     

Um innerhalb und außerhalb Hüben zu tun würden Sie um die doppelten Radius Vertrag / erweitern und die Teile subtrahieren, die mit der ursprünglichen Auswahl schneiden.

     

Es ist zu beachten, dass der meist allgemeine morphologische Algorithmus erfordert O (m * n) Operationen, wobei m die Anzahl der Pixel des Bildes ist und n die Anzahl der Elemente in dem „Strukturierungselement“. Bei bestimmten besonderen Fällen kann dies auf O (m) Operationen optimiert werden (beispielsweise, wenn das strukturierende Element ein Rechteck oder ein Diamanten).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top