www.mikrocontroller.net

Forum: PC-Programmierung pfad glätten


Autor: bernd d.b. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest dich mal mit Bilinear Interpolation befassen.

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder evtl. eine antialiased Bresenham-Variante

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bernd (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab ein Bild angehängt, welches die Problematik verdeutlichen 
sollte.

Gruss

Autor: Timmo H. (masterfx)
Datum:

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

Autor: bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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

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

Autor: Icke (Gast)
Datum:

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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: bernd d.b. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau.
Eigentlich möchte ich die Steigungen Tiefpass filtern.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht irgendwie aus wie ein Captcha.

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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#Bild...

Autor: Tom Ekman (tkon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi bernd
welche Software / Programmiersprache verwendest du den ??

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.