Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Bildrauschen ermitteln (https://www.delphipraxis.net/177231-bildrauschen-ermitteln.html)

MrMooed 25. Okt 2013 21:01

Bildrauschen ermitteln
 
Hey DPler,

auch wenn es hier nicht 100%ig hin passt - trotzdem sind hier viele kluge Köpfe :-D
Ich muss aus einem Bild das Rauschen filtern - nicht um es zu verringern. Ich muss lediglich die Stellen herausfinden, an denen besonders viel Rauschen auftritt und mit einem anderen Bild vergleichen ob es an den selben Stellen auftritt (also ob die Bilder evtl. von ein und der selben Kamera stammen).

Hoffentlich konnte jemand mein Problem verstehen und mir einen Denkanstoß geben.. :roll:

Perlsau 25. Okt 2013 22:04

AW: Bildrauschen ermitteln
 
Du könntest z.B. nach Algorithmen für die Unterdrückung von Bildrauschen suchen. Wenn du ein solches Bild damit bearbeitet hast, kannst du durch einen Vergleich des bearbeiteten mit dem unverarbeiteten Bild das Rauschen isolieren. Sei dir jedoch bewußt, daß solche Sachen hochkomplexe und für Nicht-Mathematiker kaum verständliche Themen darstellen:

Bildrauschen
Signal-Rausch-Verhältnis

Medium 26. Okt 2013 03:39

AW: Bildrauschen ermitteln
 
Bei Rauscherkennung ist die fast schon "natürliche" Antwort: Fourier-Transformation

Leider gehen bei dieser sämtliche Ortsinformationen verloren, so dass man - so man sie auf ein komplettes Bild los lässt - nur eine Gesamtaussage über dieses treffen kann. Ich könnte mir für deinen Zweck aber ganz gut vorstellen, dass es Sinn machen würde die Bilder zu diesem Zweck vorher in kleinere Quadrate zu unterteilen (ggf. sogar überlappend*), so dass man Maßzahlen immerhin für grobe Bildbereiche erhält. Das dürfte dem Zweck sogar geradezu zuträglich sein! (Und wenn man es mal genau überlegt, KANN man Rauschen garnicht 100%ig ortsgenau bestimmen, da Rauschen ja nur dann auftreten kann, wenn man einen Bereich betrachtet, der größer ist als ein einzelnes Sample (in diesem Fall Pixel). Ein einzelner Wert rauscht einfach nicht - also zumindest, wenn er über die Zeit konstant ist ;))

Noch ein Vorteil beim Unterteilen für eine FFT: Mehrere kleine Signalmengen sind schneller transformiert als eine große. Und wenn man dann die Kantenlängen noch zu Zweierpotenzen macht, wird es geradezu optimal :)

Allerdings ist es mit einer FFT sicher noch nicht getan. Man müsste anschließend noch daher gehen, und verschiedene Frequenzmuster klassifizieren, die als ähnlich gelten sollen. Da wird vermutlich ein Häufchen empirische Ermittlung mit hunderten von Testbildern nötig sein, und eine gute Portion Mathe. Allein schon die Festlegung, wo Bildinhalt weitestgehend aufhört und Rauschen anfängt ist nicht trivial, besonders bei Rauschen eher flächiger Charakteristik. Da könnte am Ende sogar fast schon ein neuronales Netz über das FFT Ergebnis sinnvoll erscheinen. So lange man es sinnvoll trainiert.

Summa summarum keine wirklich leichte Nummer. Sicherlich machbar, aber definitiv auch nur in Grenzen akkurat. Wirklich gesicherte Ergebnisse werden wohl schwer bis kaum zu machen sein, zumindest zwischen den extremen Rand-Fällen.

*) Überlappt man so extrem, dass man jeweils einen Bereich um jeden Pixel betrachtet, wird das ganze zwar sehr rechenintensiv, aber dafür auch sehr fein. Die Frage ist dann, ob sich das überhaupt lohnen würde, da die Charakteristika eines CCD Chips auch über weiter auseinander liegende Bereiche ähnlich sein sollten. Gerade die Wahl der Transformations-Fester in Größe und Abstand zueinander dürfte immense Unterschiede in der Brauchbarkeit machen. Ebenso die eingesetzte Fenster-Funktion. Da ein Optimum zu ermitteln allein ist schon ganz schön heikel, da nichtmal gesagt ist, dass es ein Optimum für den allgemeinen Fall gibt. Ich würde es gar bezweifeln, und so weit gehen mehrere Analysen mit einer größeren Range an Einstellungen zu machen, und diese wiederum nochmals zu klassifizieren...

Perlsau 26. Okt 2013 05:16

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von MrMooed (Beitrag 1233225)
... also ob die Bilder evtl. von ein und der selben Kamera stammen

Irgendwie hab ich Zweifel daran, daß man eine Kamera dadurch identifizieren kann, daß an derselben Stelle immer ein bestimmtes Rauschen auftritt. Mit Sicherheit unterscheiden sich die Algorithmen, mit denen das Bild komprimiert wird, je nach Kameratyp und -marke. Doch ob das zur Identifikation ausreicht, glaube ich eher nicht, denn Bildrauschen ist z.B. auch von der Helligkeit der Objekte, die fotografiert wurden, abhängig. Jedenfalls hab ich noch nie davon gehört, daß man Kameratypen ein spezifisches und identifizierbares Rauschen zuordnen kann.

Von Druckern – die ja quasi ebenfalls Bilder produzieren – weiß ich, daß viele Hersteller zur Drucker-Identifikation mit dem Auge nicht erkennbare Markierungen eingebaut haben, den sog. Machine Identification Code, was "vielen Anwendern nicht bekannt" ist. Ob es das auch für Kameras gibt, weiß ich nicht.

Wenn es um Originalbilder direkt aus der Digitalkamera geht, hilft womöglich das Exchangeable Image File Format.

Scheinbar gibt es aber doch weitere Möglichkeiten, wie dieser Zeitungsausschnitt belegt.

Offenbar hat auch ein gewisser Professor Pausch an der Uni Darmstadt etwas entwickelt, das er in seiner "Masterarbeit: Identifikation einer Digitalkamera mittels Seitenkanalinformationen veröffentlicht oder zu veröffentlichen beabsichtigt.

Du siehst: Recherchieren bringt weiter :thumb:

Was mich interessiert: Wofür brauchst du sowas? Forensik?

MrMooed 26. Okt 2013 14:45

AW: Bildrauschen ermitteln
 
Hey,

Zitat:

Zitat von Perlsau (Beitrag 1233242)
Wenn du ein solches Bild damit bearbeitet hast, kannst du durch einen Vergleich des bearbeiteten mit dem unverarbeiteten Bild das Rauschen isolieren.

Mhmm so sollte ich erstmal weiter kommen. Hoffentlich kriege ich die Vergleiche etwas .. performanter hin als ich sie zur Zeit habe - 5min an einem Bild herumdoktorn ist mir zu lange :S
Zitat:

Zitat von Perlsau (Beitrag 1233242)
Irgendwie hab ich Zweifel daran, daß man eine Kamera dadurch identifizieren kann, daß an derselben Stelle immer ein bestimmtes Rauschen auftritt.

Habe ich mir auch gewünscht, dass so etwas nicht möglich ist .. leider ist es nach diesem Link sogar mit ziemlich kleinen (256x512) Bildern zu bewerkstelligen.
Zitat:

Zitat von Perlsau (Beitrag 1233242)
Was mich interessiert: Wofür brauchst du sowas? Forensik?

Ja genau, ich habe 5 Kameras und ein (ich nenn es mal so) Referenzbild, das ich einer der Kameras zuordnen muss. Von jeder der Kameras habe ich jeweils 5 Aufnahmen.
Zitat:

Zitat von Medium (Beitrag 1233237)
Die Frage ist dann, ob sich das überhaupt lohnen würde, da die Charakteristika eines CCD Chips auch über weiter auseinander liegende Bereiche ähnlich sein sollten.

Laut der Aufgabe handelt es sich bei allen 6 Kameras um CMOS-Sensoren - gilt es für diese ebenso?
Zitat:

Zitat von Medium (Beitrag 1233237)
Fourier Transformation

Puh, die werde ich mir mal ansehen. Habe keine Vorstellung was man damit bewerkstelligen kann :? Aber schon mal Danke für das Stichwort

Habe jetzt erstmal ein Programm geschrieben, das mir das Rauschen herausnimmt (Median-Filter). Er nimmt also aus einem best. Bereich den Durchschnittlichen Wert für jeden Farbkanal und erstellt aus den Werten ein neues "rauschfreies" Bild. Anschließend muss ich die Bilder von einander abziehen und (so die Theorie :D) erhalte meine "Rauschestellen".

Medium 26. Okt 2013 16:53

AW: Bildrauschen ermitteln
 
CMOS dürfte ähnlich sein. Was du da filterst, ist im Grunde genommen ein einfacher Hochpass-Filter auf Umwegen. Damit hast du zwar ein schönes Bild des Rauschens (und hochfrequenter Inhaltsanteile), jedoch keine quatifizierbare Aussage über die Charakteristika des Rauschens. Wenn du die Vergleiche ohnehin nachher durch manuelles Betrachten machen möchtest, und es nicht um vollautomatische Verarbeitung von größeren Mengen von Bilder geht, ist das sogar schon gar nicht so übel. Zumindest, wenn sich da optisch ausreichend signifikante Muster ausmachen lassen. Wirkliche Erfahrung im Zusammenhang mit Kameras habe ich da eher nicht. Mein Kontakt zur Welt der Bildverarbeitung kommt eher aus der verlustbehafteten Kompression und Kantenerkennung, wo ganz ähnliche Techniken zentraler Bestandteil sind. Eine Anwendbarkeit für deine Zwecke kann ich mir aber halt sehr gut vorstellen :)

Namenloser 26. Okt 2013 19:01

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von MrMooed (Beitrag 1233277)
Habe jetzt erstmal ein Programm geschrieben, das mir das Rauschen herausnimmt (Median-Filter). Er nimmt also aus einem best. Bereich den Durchschnittlichen Wert für jeden Farbkanal und erstellt aus den Werten ein neues "rauschfreies" Bild. Anschließend muss ich die Bilder von einander abziehen und (so die Theorie :D) erhalte meine "Rauschestellen".

So ähnlich wäre jetzt auch meine spontane Idee gewesen: Erst Bild mit kleinem Kernel blurren (2×2 Pixel oder so) und anschließend vergleichen. Beim Filter „Unscharf Maskieren“ wird ein solches Prinzip ja genutzt um ein Bild zu schärfen, aber ich denke, das kann man auch verwenden, um Rauschen zu erkennen.

Eine andere Idee: Die „Ableitung“ des Bildes berechnen, also jeweils vom nächsten Pixel den Wert des vorigen Pixels abziehen, ggf. in zwei Dimensionen (so ähnlich arbeiten ebenfalls einige Schärfungs-Filter. Und Kantenerkennungsfilter). Dann müssten Stellen, wo die Werte schwanken (= Rauschen), ja hervorstechen. Man könnte dann noch einen Schwellenwert hernehmen, sodass von der „Ableitung“ nur Stellen unterhalb eines bestimmten Wertes angezeigt werden, um das ganze wirklich auf Rauschen zu beschränken, sonst bekommt man so ein reliefartiges Bild, wo alle Kanten hervorgehoben sind.

Also ich denke generell dürfte es ein guter Ansatz sein, sich Schärfungsalgorithmen anzusehen, denn die sind ja berüchtigt dafür, dass sie oft als Nebeneffekt das Bildrauschen verstärken.

Puke 26. Okt 2013 21:11

AW: Bildrauschen ermitteln
 
Mich würde die Antwort auch interessieren!

Damit könnte ich endlich die unlösbare Aufgabe des BWINF lösen. Wären die 30MB-Bilder Downloads doch nicht umsonst :shock:.

Bei denen wird das mit dem Bildrauschen funktionieren, sonst wäre die Aufgabenstellung sinnlos :thumb:

Gruß Puke :kotz:

MrMooed 26. Okt 2013 21:24

AW: Bildrauschen ermitteln
 
Zitat:

Zitat von Puke (Beitrag 1233300)
Damit könnte ich endlich die unlösbare Aufgabe des BWINF lösen.

:lol: Genau diese Aufgabe bearbeite ich :lol:

Vllt. können wir uns da ja zsm. setzen :stupid:

Jedenfalls habe ich jetzt (hoffentlich) das Rauschen der einzelnen Bilder herausgefiltert - Mal sehen ob ich die "Rauschbilder" noch untereinander vergleiche oder ob ich jedes einzeln mit dem Referenzbild vergleiche :gruebel:

Ich halte euch auf dem laufenden wenn da so ein Interesse besteht :)

Namenloser 26. Okt 2013 21:53

AW: Bildrauschen ermitteln
 
Die Aufgaben des BWINF soll man aber selbst bearbeiten und nicht sich die Lösung von anderen vorkauen lassen :?. Find ich nicht so toll, ehrlich... zumal ich vor Jahren selbst am BWINF teilgenommen habe und mir sehr viel Stress damit gemacht habe, die Aufgaben alle selbstständig zu bearbeiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.
Seite 1 von 2  1 2      

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