Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi bitmaps entstören (despeckle) (https://www.delphipraxis.net/103274-bitmaps-entstoeren-despeckle.html)

nat 13. Nov 2007 16:23


bitmaps entstören (despeckle)
 
hallo erstmal :)

ich würde in meine anwendung gerne so einen entstören/despeckle filter für bitmaps integrieren
wie man ihn aus vielen grafikanwendungen kennt (um störende flecken wie kratzer etc zu entfernen).
ich habe jetzt schon ewig das inet abgesucht und nichts gefunden.
weiß jmd vll wo ich da fündig werde oder hat gar jmd einen fertigen code dafür?
das wäre mir eine große hilfe.

danke schonmal im vorraus :)

felxi 13. Nov 2007 16:53

Re: bitmaps entstören (despeckle)
 
ich hab's mal so gelöst, indem ich pro Pixel die Umgebungsfarbe untersucht und angepasst habe.
Als Beispiel:

1.) Du errechnest pro 4*4 oder 3*3 Feld die Durchschnittsfarbe
2.) Falls innerhalb dieses Feldes ein Pixel um x% von der Durchschnittsfarbe abweicht, wird es der Umgebung angepasst.

Als zusätzlichen Parameter könntest du noch die ungefähre Farbe der Kratzer angeben, dann sollte das Ganze ein wenig zuverlässiger funktionieren.

nat 13. Nov 2007 17:20

Re: bitmaps entstören (despeckle)
 
Zitat:

Zitat von felxi
ich hab's mal so gelöst, indem ich pro Pixel die Umgebungsfarbe untersucht und angepasst habe.
Als Beispiel:

1.) Du errechnest pro 4*4 oder 3*3 Feld die Durchschnittsfarbe
2.) Falls innerhalb dieses Feldes ein Pixel um x% von der Durchschnittsfarbe abweicht, wird es der Umgebung angepasst.

Als zusätzlichen Parameter könntest du noch die ungefähre Farbe der Kratzer angeben, dann sollte das Ganze ein wenig zuverlässiger funktionieren.

erstma danke für deine schnelle antwort. zu deinem ansatz, hab ich dann nicht gleichzeitig einen leichten blur effekt?
das wäre nicht unbedingt erwünscht...

felxi 13. Nov 2007 17:37

Re: bitmaps entstören (despeckle)
 
Da du zwar jeden Pixel überprüfst, aber nicht zwingend änderst, funktioniert das schon :stupid:
Wie schon geschrieben müsstest du genaue Bewertungskriterien festlegen, damit nicht zuviel geändert wird.

Reinhard Kern 13. Nov 2007 17:50

Re: bitmaps entstören (despeckle)
 
Zitat:

Zitat von nat
hallo erstmal :)

ich würde in meine anwendung gerne so einen entstören/despeckle filter für bitmaps integrieren
wie man ihn aus vielen grafikanwendungen kennt (um störende flecken wie kratzer etc zu entfernen).
ich habe jetzt schon ewig das inet abgesucht und nichts gefunden.
weiß jmd vll wo ich da fündig werde oder hat gar jmd einen fertigen code dafür?
das wäre mir eine große hilfe.

danke schonmal im vorraus :)

Hallo,

muttu richtig gugeln. "despeckle algorithm" liefert an 1:

http://image.msfc.nasa.gov/ChrisDocs...GridNoise.html

und noch vieles vieles mehr, aber was für die NASA gut ist könnte für dich ja auch genügen.

Gruss Reinhard

nat 14. Nov 2007 12:55

Re: bitmaps entstören (despeckle)
 
also ich habe das jetzt mal mit der durchschnitts farbe auf nem 3*3 bis 5*5 feld ausprobiert. und das führt nicht zum gewünschten ergebnis. er passt halt zu stark die farbe von den elementen die keine störung sind an. hab (wie ichs schon dachte) dadurch einen blur effekt.
ich habe das mit dem despeckle filter meines grafikbearbeitungs-programm (paint shop pro) verglichen, der lässt die elemente viel mehr
in ruhe und entfernt nur die störelemente(muß den filter evtl mehrmals anwenden).

Zitat:

Hallo,

muttu richtig gugeln. "despeckle algorithm" liefert an 1:

http://image.msfc.nasa.gov/ChrisDocs...GridNoise.html

und noch vieles vieles mehr, aber was für die NASA gut ist könnte für dich ja auch genügen.

Gruss Reinhard
da hast du schonma mehr gefunden als ich ;)
aber ich muss zugeben, dass das t.w. harter stoff ist. bis jetzt konnte ich damit noch nichts anfangen.
aber ich versuche es weiter...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz