Suche: Literatur zu "Raster to Vector" Algorithmen
-
Hallo,
wie der Titel vermuten lässt, suche ich Literatur zu Algorithmen zur Umwandlung von Raster- in Vektorgrafiken.
Nachdem ich die Suchbegriffe in der Suchmaschine meines Vertrauens angepasst habe, bin ich auch schon etwas schlauer geworden. Konkret suche ich aber eher was handfestes im wahrsten Sinne des Wortes - Bücher, die das Thema irgendwie behandeln.
Falls also jemand was kennt, lasst es mich bitte wissen! Links zu Artikeln / allg. Websites sind natürlich auch gerne gesehen, denn insgesamt ist meine Datensammlung zur Zeit etwas mager.
Grüße
- monogon
-
Keiner eine Idee :(?
-
Schau Dir mal die Hough-Transformation an.
-
Zwar nicht ganz genau das, was ich eigentlich suche, aber dennoch nützlich. Danke dir.
-
Literaturtipps habe ich nicht parat. Aber ich habe mich mal kurz am Rande mit so'was beschäftigt. Für eine Vektorisierung ist es extrem praktisch, das Bild vernünftig und glatt "interpolieren" zu können, inklusive von Ableitungen. Kubische B-Splines sind dafür gut brauchbar. Siehe dazu http://bigwww.epfl.ch/publications/thevenaz9901.pdf
Kanten -- also Kurven, die helle und dunkle Flächen trennen, könnte man über den Betrag des Helligkeitsgradienten bestimmen. Wird hier ein bestimmter Wert überschritten, so hast Du wahrscheinlich eine Kante oder Ecke gefunden. Diese gilt es dann zu "verfolgen". Dabei helfen Dir die Intensitäts-Ableitungen. Kanten verfolgt man typischerweise "länger". Damit meine ich, dass man einen zweiten Schwellwert für den Betrag des Gradienten hat, der niedriger ist. Dieser Trick nennt sich Hysterese.
Wie gesagt, B-Splines sind da extrem praktisch, weil Du mit ihnen die Intensität und gleichzeitig die passenden Ableitungen interpolieren/rekonstruieren kannst. Da vor der Vektorisierung sich typischerseise ein leichter Glättungsfilter positiv auswirkt, musst Du mit den B-Splines auich nicht "interpolieren" (im Sinne von exakt durch die Stützstellen laufen) sondern kannst den "natürlichen Glättungseffekt" der kubischen B-Splines ausnutzen (*). Also, statt umständlich einen Tiefpass drüberlaufen zu lassen und danach Wichtungsfaktoren zu bestimmen, kannst Du dir diese beiden Schritte sparen, weil sie sich quasi aufheben.
(* Verwendest Du die kubischen B-Splines direkt als Interpolator (statt das dazugehörige "Kardinal-Spline"), bekommst du einen leichten Glättungseffekt, der hier eigentlich von Vorteil ist)
-
Die Kantenverfolgung mit Hysterese, die krümelkacker beschrieben hat, findest du oft auch als Canny edge detector ( http://en.wikipedia.org/wiki/Canny_edge_detector ). OpenCV kann den schon. http://opencv.itseez.com/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html?highlight=canny
Konturen suchen und unterschiedlich approximieren kanns auch schon ( http://opencv.itseez.com/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html#find-contours ).
Also falls es dir eher darum geht, für irgendein Projekt flott etwas zu haben, dass für so einfache Fälle funktioniert, würde sich das anbieten.
Wenns dir allerdings eher darum geht, zu lernen, wie man sowas selbst implementieren kann, ist das natürlich was anderes, wobei man OpenCV wie der Name schon sagt, den Quelltext zur Inspiration angucken kann.
Ansonsten steht Incscape ja unter der GPL. Das kann sowas auch.