ich denke die Antwort auf meine Frage ist realtiv simpel. Im Prinzip suche ich nur nach einem Stichwort um in meinen recherchen weiterzukommen. Aber vielleicht hat ja auch jemand ein Package parat, das ganz genau das macht was ich suche.
Das Problem:
Ich möchte eine Rasterfläche vektorisieren. Sprich: Ein Polygon um eine Fläche legen.
Mein aktueller Ansatz:
Ich habe das Raster in ein Array mit Nullen und Einsen gespeichert. Das genügt erstmal meinen Ansprüchen.
1.Schritt: Ich extrahiere von der Fläche die Randpixel mit convolve() und where() Anweisungen. Das klappt auch ganz gut.
Also aus
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 1 1 1 0 0
0 0 1 1 1 1 0
0 1 1 1 1 1 0
0 1 1 1 1 1 0
0 0 0 0 0 0 0
mache ich
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 1 1 0 0
0 0 1 0 0 1 0
0 1 0 0 0 1 0
0 1 1 1 1 1 0
0 0 0 0 0 0 0
2. Schritt: Alle Indizies von Einser-Pixeln werden in eine Liste gespeichert.
3. Schritt: Ich mache eine Linienverfolgung entlang der Randpixel beginnend beim ersten Pixel der Index-Liste aus Schritt 2. Ich kenne den Namen des Algorythmusses leider nicht aber hier der Ansatz:
- an einem Einser-Pixel wird links abgebogen
- an einem Nuller-Pixel wird rechts abgebogen
- um Schleifenschlüsse zu vermeiden muß spätestens nach dreifachem Rechts- bzw. Linksabbiegen immer links bzw. rechts abgebogen werden.
- dazu kommen noch ein paar Sonderfälle
Der Index des gefundenen Pixels wird aus der Indize-Liste gestrichen um später zwischen verschiedenen Flächen unterscheiden zu können.
4. Schritt: Wenn der Anfangspixel der Linienverfolgung erreicht ist ist das Polygon geschlossen. Es wird mit Schritt 2 fortgefahren und solange immer wieder dort angefangen bis die Index-Liste leer ist.
ich hoffe das war jetzt einigermaßen verständlich.

Das Prinzip funktioniert, ist aber ziemlich lahm. Das muss aber doch irgendwie auch schneller gehen! Z.B. arbeitet jeder Zauberstab in einem Bildbearbeitungsprogramm quasi in Echtzeit. Jetzt weiß ich allerdings nicht ob da wirklich eine Vektorisierung durchgeführt wird.
Vielleicht hat jemand eine zündende Idee wonach man suchen könnte, bzw. ob es dafür irgendein Package gibt.
Danke für die Hilfe im Voraus!
Grüße
tromai