Forum: PC-Programmierung pfad glätten


von bernd d.b. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich beschäftige mich zurzeit mit digitaler Bildverarbeitung. Ich habe 
ein Algorithmus geschrieben, welcher mir die Konturen eines Objektes als 
Pfad zurückgibt. Den möchte ich noch ein bisschen "smooth" machen. Gibt 
es dazu einen Ansatz?
Im Anhang ein Bild meines Outputs.


Gruss Bernd

von Timmo H. (masterfx)


Lesenswert?

Du solltest dich mal mit Bilinear Interpolation befassen.

von D. I. (Gast)


Lesenswert?

Oder evtl. eine antialiased Bresenham-Variante

von Иван S. (ivan)


Lesenswert?

bernd d.b. schrieb:
> Ich beschäftige mich zurzeit mit digitaler Bildverarbeitung. [...] Den
> möchte ich noch ein bisschen "smooth" machen.

Was verstehst Du unter "smooth"?

> Gibt es dazu einen Ansatz?

Ich hätte einen unkonventionellen Ansatz, der deswegen aber nicht 
unbedingt schlechter sein musz. Nämlich den Input via OCR einlesen und 
in einer gewünschten "smoothen" Schrift wieder ausgeben.

hth in irgendeiner Weise,
Iwan

von bernd (Gast)


Lesenswert?

Vielen Dank für die Rückmeldung.

@Timo: Interpolation wird meines Wissens ja verwendet, um fehlende 
Punkte zu "interpolieren". Jedoch habe ich ja alle meine Punkte, jedoch 
sind nicht alle optimal verteilt. Wie wenn ich das 'S' mit einem Spline 
fitten und nachher die Pixel neu zeichnen würde.

Jedoch möchte ich weiterhin nur diese eine Farbe verwenden ("1 Bit 
Farbtiefe") und meine Kurve nicht antialiasen.

@Иван S.:
.. Das Programm läuft genau auf OCR hinaus  ;-)


Gruss bernd

von bernd (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab ein Bild angehängt, welches die Problematik verdeutlichen 
sollte.

Gruss

von Timmo H. (masterfx)


Lesenswert?

Also willst das "S" gerade rücken? In deinem Beispiel siehts jetzt eher 
so aus, als wenn es ein Kleinkind geschrieben hätte ;)

von bernd (Gast)


Lesenswert?

;-)
Ja das ist auch nur beispielhaft gezeichnet. Aber man sollte doch 
erkennen, dass nun die Kontur feiner ist und nicht mehr so viele Ecken 
beinhaltet?

von Timmo H. (masterfx)


Lesenswert?

Also was dieses "S" eigentlich erst so Eckig aussehen lässt sind diese 
"L's" aus denen es besteht. Sprich eine Ecke bestehend aus 2-3x1px. 
Evlt. solltest du versuchen diese Konstellation zu erkennen und durch 
eine eine Pixelreihe zu ersetzen die so aussieht:
###  --\  ##
  #  --/    ##

oder

#####  --\   ####
#   #  --/  #    #

von Icke (Gast)


Lesenswert?

Du willst also quasi ein AA-Filter haben!?
http://de.wikipedia.org/wiki/Antialiasing_(Computergrafik)

von Timmo H. (masterfx)


Lesenswert?

Icke schrieb:
> Du willst also quasi ein AA-Filter haben!?
> http://de.wikipedia.org/wiki/Antialiasing_(Computergrafik)
Glaube ich nicht, denn AA-Filter macht Pfade "softer" indem es 
Zwischenwerte bildet. Der TO will aber scheinbar nur mit ein und der 
selben Farbe arbeiten.

von bernd d.b. (Gast)


Lesenswert?

Ja genau.
Eigentlich möchte ich die Steigungen Tiefpass filtern.

von Grrrr (Gast)


Lesenswert?

Sieht irgendwie aus wie ein Captcha.

von dito (Gast)


Lesenswert?

Für die Kantendektion hast du doch sicherlich eine der hier aufgeführten 
Operatoren verwendet:
http://de.wikipedia.org/wiki/Kantendetektion

Was du jetzt vorhast entspricht einer Tiefpassfilterung. Der bekannteste 
und einfachste TP-Filter ist der Gauß-Filter:

http://de.wikipedia.org/wiki/Gau%C3%9F-Filter#Bildverarbeitung

von Tom E. (tkon)


Lesenswert?

hi bernd
welche Software / Programmiersprache verwendest du den ??

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.