AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Bildrauschen ermitteln

Ein Thema von MrMooed · begonnen am 25. Okt 2013 · letzter Beitrag vom 27. Okt 2013
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#1

Bildrauschen ermitteln

  Alt 25. Okt 2013, 22:01
Hey DPler,

auch wenn es hier nicht 100%ig hin passt - trotzdem sind hier viele kluge Köpfe
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..
Gruß,
MrMooed
"Unsere Luft hat einen Vorteil: Man sieht was man einatmet" - Ein Chinese
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Bildrauschen ermitteln

  Alt 25. Okt 2013, 23:04
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
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 04:39
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...
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (26. Okt 2013 um 04:46 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 06:16
... 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

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

Geändert von Perlsau (26. Okt 2013 um 06:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 15:45
Hey,

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
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.
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.
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?
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 ) erhalte meine "Rauschestellen".
Gruß,
MrMooed
"Unsere Luft hat einen Vorteil: Man sieht was man einatmet" - Ein Chinese

Geändert von MrMooed (26. Okt 2013 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 17:53
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
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 20:01
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 ) 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.
  Mit Zitat antworten Zitat
Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#8

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 22:11
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 .

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

Gruß Puke
Gruß Puke
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 22:24
Damit könnte ich endlich die unlösbare Aufgabe des BWINF lösen.
Genau diese Aufgabe bearbeite ich

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

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

Ich halte euch auf dem laufenden wenn da so ein Interesse besteht
Gruß,
MrMooed
"Unsere Luft hat einen Vorteil: Man sieht was man einatmet" - Ein Chinese
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Bildrauschen ermitteln

  Alt 26. Okt 2013, 22:53
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.
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