Ich habe Pixeldaten, hier ein generisches Beispiel:
Die schwarzen Pixel repräsentieren Flächen. Teilweise sind diese Flächen sehr verschlungen ("komplex"), es gibt oft solche schlauchartigen Strukturen. Diese Flächen will ich vereinfachen. Dabei sollen die Schläuche gelöscht werden, also alles, was so dünn ist, soll weg. Es dürfen keine Pixel hinzugefügt werden und es sollen möglichst viele Pixel, die nicht zu Schläuchen gehören, erhalten bleiben. Einzeln stehende (übrigbleibende) Pixel können in einem zweiten Durchlauf gelöscht werden. Ein Ergebnis soll in etwa so aussehen:
Aktuell mache ich das so, dass ich für jedes Pixel die Umgebung (einen Kreis mit parametrisierbarem Radius) abtaste und schaue, wie viel Prozent der Pixel im Umgebungskreis nicht-schwarz sind. Liegt dieser Wert über 50%, wird dieses Pixel gelöscht.
Kreise mit Radius 2 lassen noch viele Schläuche übrig, Kreise mit Radius 4 schneiden zu viele Randpixel von Flächen weg, die ich eigentlich erhalten will. Radius 3 ist ein ganz guter Tradeoff, aber perfekt wird das auch nicht. Einstellbar ist außerdem den Prozentsatz. 50% klappt ganz gut, mehr oder weniger hat wieder Seiteneffekte in die eine oder andere Richtung.
Ich will nochmal zurück ans Reißbrett und suche nach einer alternativen Herangehensweise. Deshalb mal Brainstorming: Was fällt Euch zu diesem Thema ein? Jeder Gedanke ist willkommen.
Die schwarzen Pixel repräsentieren Flächen. Teilweise sind diese Flächen sehr verschlungen ("komplex"), es gibt oft solche schlauchartigen Strukturen. Diese Flächen will ich vereinfachen. Dabei sollen die Schläuche gelöscht werden, also alles, was so dünn ist, soll weg. Es dürfen keine Pixel hinzugefügt werden und es sollen möglichst viele Pixel, die nicht zu Schläuchen gehören, erhalten bleiben. Einzeln stehende (übrigbleibende) Pixel können in einem zweiten Durchlauf gelöscht werden. Ein Ergebnis soll in etwa so aussehen:
Aktuell mache ich das so, dass ich für jedes Pixel die Umgebung (einen Kreis mit parametrisierbarem Radius) abtaste und schaue, wie viel Prozent der Pixel im Umgebungskreis nicht-schwarz sind. Liegt dieser Wert über 50%, wird dieses Pixel gelöscht.
Kreise mit Radius 2 lassen noch viele Schläuche übrig, Kreise mit Radius 4 schneiden zu viele Randpixel von Flächen weg, die ich eigentlich erhalten will. Radius 3 ist ein ganz guter Tradeoff, aber perfekt wird das auch nicht. Einstellbar ist außerdem den Prozentsatz. 50% klappt ganz gut, mehr oder weniger hat wieder Seiteneffekte in die eine oder andere Richtung.
Ich will nochmal zurück ans Reißbrett und suche nach einer alternativen Herangehensweise. Deshalb mal Brainstorming: Was fällt Euch zu diesem Thema ein? Jeder Gedanke ist willkommen.