www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik FFT über einem Bild


Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gerne ein Bild dahingehend analysieren, ob es noch 
periodische Störungen enthält und wenn ja, wie große diese sind und 
welche Frequenz sie haben.

Nun habe ich gelesen, dass es auch die Möglichkeit gibt, die FFT auf ein 
Bild anzuwenden. Dabei sollte das Motiv des Bildes möglichst 
gleichfarbig sein (Testchart o.Ä.)...

Nun bin ich auf der Suche nach einem Programm oder Tool, was diese 
Aufgabe erledigen kann. Speziell geht es um ein CCD Bild. Hilfreich wäre 
eine Art Spektrum mit Angaben, mit denen ich in Kombination des 
Pixeltaktes, eine Frequenz/Periode berechnen kann.

Ich bin mir ziemlich sicher, dass ich noch Störungen in meinem Bild 
habe, kann sie aber leider rein visuell nicht mehr erfassen. Durch 
zoomen am Bildschirm, vor allem wenn ich herauszoome, kann man diese 
Störungen noch leicht erahnen, aber wenn man dann wieder reinzoomt, um 
deren Periode zu bestimmen, ist es nicht möglich, weil die Unterschiede 
zum ungestörten Bild viel zu klein sind.

Ich wäre für Hinweise für diese analytische Aufgabe sehr dankbar!

Vielen Dank!
Andi

Autor: S. Matlok (smatlok)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:

> Nun habe ich gelesen, dass es auch die Möglichkeit gibt, die FFT auf ein
> Bild anzuwenden. Dabei sollte das Motiv des Bildes möglichst
> gleichfarbig sein (Testchart o.Ä.)...

Klar, falls du nicht den Bildinhalt, sondern die Störungen analysieren 
willst, wärs sinnvoll ein einfarbige, homogene Quelle zu nehmen.

> Nun bin ich auf der Suche nach einem Programm oder Tool, was diese
> Aufgabe erledigen kann. Speziell geht es um ein CCD Bild. Hilfreich wäre
> eine Art Spektrum mit Angaben, mit denen ich in Kombination des
> Pixeltaktes, eine Frequenz/Periode berechnen kann.

Nimm doch einfach eine Zeile/Diagonla/Spalte und nimm deren Helligkeits- 
oder Farbwerte und schicke sie an eine belibige FFT (Matlab, sonstige 
Tools, Maxima, schreib ein C-Programm, uC, nimm nen Webservice oder 
sonstiges :-))

> deren Periode zu bestimmen, ist es nicht möglich, weil die Unterschiede
> zum ungestörten Bild viel zu klein sind.

Willst du sie optisch suchen, nehm ein x-beliebiges Bitmapprogramm und 
erhöhe Kontrast, setze Helligkeitsschwellwerte, wende Kantenfilter an 
etc.. dann siehst du evtl schon was los ist :-)

Autor: Kevin K. (nemon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
matlab hat da bereits einiges für dich auf Lager. Aber denk dran, dass 
die FFT von periodischen Signalen ausgeht. Wenn du ein Bild analysierst, 
in dem Kanten sind, liefert dir die FFT Spektren, die verwirrend 
aussehen. Denk auch an die notwendige periodische Fortsetzung.

Autor: Andreas B. (loopy83)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also die FFT an sich ist nicht so das große Problem, wie ich soeben 
festgestellt habe. Ich habe ein Programm (MeeSoft Image Analyzer), der 
diese komplett selbstständig durchführt.

Dabei entsteht das Bild im Anhang.

Nun habe ich Probleme dieses Bild zu interpretieren.
Ich weiß, dass die weißen Punkte einer bestimmten Frequenz, die 
Helligkeit der Punkte die Amplitude und das am Bildmittelpunkt 
gespiegelte Punkte der gleichen Frequenz entsprechen. Der Abstand der 
Punkte vom Bildmittelpunkt entspricht der Frequenz. Also weiter außen 
liegende Punkte haben eine größere Frequenz.

Aber wie bekomme ich nun raus, welcher Punkt welche Frequenz genau hat?

Vielen Dank!
Andi

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öhm...
lies dir da am besten nochmal die Grundlagen durch.
Ein einzelner Punkt hat keine Frequenz.
Die Frequenz entsteht durch periodische Muster.
Wenn also jeder zweite Punkt eine bestimmte Farbe hat dann wirst du auf 
diesem Farbkanal im Frequenzraum einen Ausschlag bei der Frequenz 
"1/Bildbreite in px" haben.

Allerdings kannst du dein Bild auch direkt im Frequenzraum bearbeiten. 
Wende mal eine Bandsperre für die relevante Frequenz auf das Signal an 
und mach danach ne Rücktransformation.

Gruß,
Sven

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ein einzelnes Pixel keine Frequenz haben kann, ist klar.

Ich meine auch nicht die Punkte im zu analysierenden Bild, sondern die 
hellen Punkte in dem aus der FFT entstandenen Bild (Anhang), denn diese 
entsprechen doch einer bestimmten Frequenz, oder nicht?

Um eine Bandsperre anzuwenden, mal abgesehen davon, dass ich spontan gar 
nicht wüßte wie das geht bei einem Bild, müßte ich die Frequenz ja 
kennen. Damit könnte ich dann vielleicht überprüfen, ob meine Bestimmung 
genau war, aber zum ermitteln der Frequenz ist es doch etwas zu 
aufwendig!? Dann müßte ich ja durch probieren zahlreiche Frequenzen aus 
dem Bild schmeissen, bis ich die gefunden habe, die stört.

Gibt es keine einfacheren Methoden, aus dem FFT Bild etwas abzulesen?
Das meinetwegen der Abstand vom Bildmittelpunkt zu einem Maxima der 
Frequenz entspricht und man daraus die tatsächliche Frequenz berechnen 
kann?

Und ich will das Bild nicht bearbeiten, sondern nur analysieren, welche 
Frequenzen darin noch vorhanden sind und die ich eventuell zu 
Verbesserung der Bildqualität dämpfen sollte.

Vielen Dank!
Andi

Autor: fragender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl hilft die das hier weiter...

http://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Sehr informativer Link.... Danke!

Weiterhin habe ich aber das Problem, dass ich die Punkte keiner Frequenz 
zuordnen kann.
Die perioden Störungen streuen ja vermutlich beim Auslesen des CCDs ein. 
Deswegen kann ich so die Pixelfrequenz hinzuziehen.

Nun habe ich mein Spektrum mit weißen Punkten.

Frage:
Ist der Abstand der weißen Punkte zum Bildmittelpunkt des Spektrums 
gleich des Abstandes der Störungen im Bild? Dann könnte ich ja diesen 
Pixelabstand mit meiner Pixelperiode multiplizieren, invertieren und 
hätte meine störende Frequenz.

Oder wie kann ich auf die störenden Frequenzen schlussfolgern?

Vielen Dank!
Andi

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Ich bin mir ziemlich sicher, dass ich noch Störungen in meinem Bild
> habe, kann sie aber leider rein visuell nicht mehr erfassen. Durch
> zoomen am Bildschirm, vor allem wenn ich herauszoome, kann man diese
> Störungen noch leicht erahnen,

Eventuell reicht dir schon eine Kontrasterhöhung des 10Bit Bildes aus?
Die letzten Bit kannst du nicht mehr sehen und der Bildschirm nicht mehr 
darstellen, außerdem müsstest du den Kontrast erhöhen bevor du in einem 
Format speicherst das weniger als 10Bit kann.

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein ADC kann 14bit und ich habe ein 8bit Bild.
Ich kann die 8bit aber von 0-7 bis 6-13 schieben und da erkenne ich das 
Rauschen nur auf den unteren Bits...
Wenn ich mir die vollen 14bit anschauen könnte, wären die Störungen 
vielleicht besser zu sehen, aber das ist leider nicht möglich.
Mit Kontrast und Helligkeit habe ich auch schon rumprobiert... leider 
ohne nennenswerte Erfolge.

Grüße Andi

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> mein ADC kann 14bit und ich habe ein 8bit Bild.

Das verstehe ich nicht ganz. Wirfst du die untersten 6Bit dann immer 
weg?


Kannst du ein Bild mit 14Bit erstellen und hochladen?

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ich mir die oberen 8 bit (MSB) anschaue, werfe ich die untersten 6 
bit weg, wenn ich mir 8bit aus der Mitte aussuche, werfe ich oben und 
unten ein paar Bits weg und wenn ich mir die untersten Bits (LSB) 
anschaue, werfe ich die obersten 8bit weg.

Leider kann ich kein Bild mit vollen 14bit erstellen, weil die 
Übertragungsstrecke nur 8bit kann. Deswegen habe ich mir eine Auswahl 
geschaffen, dass ich 8bit durch die verfügbaren 14bit schieben kann.

Wenn ich mir nur die obersten 8bit anschauen könnte, würde mir sicher 
die eine oder andere Störung nicht auffallen, deswegen schiebe ich zur 
Suche dieser Störungen die 8bit weiter Richtung LSB und kann dann 
deutlicher die Störungen begutachten, die bei 8bit vom MSB aus gesehen 
sicher weniger deutlich wären, aber dennoch vorhanden sind.

Wenn das Ergebnis dann zufriedenstellend ist, verwende ich dann 
dauerhaft nur die MSB 8bit.

Vielen Dank!
Andi

Autor: Kai Klaas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich möchte gerne ein Bild dahingehend analysieren, ob es noch
>periodische Störungen enthält und wenn ja, wie große diese sind und
>welche Frequenz sie haben.

Oh je, das klingt völlig übertheoretisiert. Mit dieser Spielerei kann 
man Diplomarbeiten füllen und anderen Unfug treiben, auf jeden Fall mal 
massig Zeit verschwenden.

Das Problem dabei ist, daß du die Störung, woher sie auch immer kommen 
mag, nie als Ganzes samplest, sondern durch das Timing des 
Sensorauslesens du immer nur Aliasingprodukte siehst, also 
Schwebungseffekte. Das ist so, als ob du bei einem Speicheroszi die 
Ablenkzeit zu klein einstellst und dadurch höherfrequente Störungen 
nicht als solche sichtbar werden, sondern nur dessen Aliasingprodukte. 
Da kanst du dann tagelung nach einer 312,579Hz Störung fahnden, die 
letztlich garnicht vorhanden ist...

Doch selbst, wenn du all dieses Aliasing-Gedöns herausrechnest, was 
bringt es dir dann zu wissen, daß da eine ganz schwache 12,675kHz 
Störung ist? Dann weist du, daß du R345 um 7cm nach rechts und 3,4cm 
nach unten verschieben mußt?? Wo ist der geistige Nährwert dann dieses 
Befunds?? Ich sehe nicht, wie dir das helfen sollte, die Schaltung zu 
optimieren.

Du mußt das Übel an der Wurzel packen und die Schaltung und das Layout 
so gestalten, daß die Störungen von vorne herein gering sind. Was du da 
mit dem FFT vorhast, ist letztlich ein Trial-And-Error Verfahren, daß 
dich um keinen Zentimeter voran bringt.

Du weißt doch schon, wo die Störungen herrühren, von deinen 
Pixel-Schiebe-Taktsignalen. Route die anständig, verdrossele und filter 
ausreichend, dann brauchst du diesen ganzen FFT-Quark nicht. SCHAU DIR 
DAZU DAS LAYOUT DES EVAL-BOARDS GENAU AN !!!!!, wenn du nicht genügend 
Erfahrung hast und keinen erfahrenen Ingenieur in eurer Abteilung 
auftreiben kannst!

>Ich bin mir ziemlich sicher, dass ich noch Störungen in meinem Bild
>habe, kann sie aber leider rein visuell nicht mehr erfassen.

Hallo?? Warum stören sie dich dann, wenn du sie nicht mehr sehen 
kannst???

Kai Klaas

Autor: Matthias Heininger (mheininger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai Klaas schrieb:
>>ich möchte gerne ein Bild dahingehend analysieren, ob es noch
>>periodische Störungen enthält und wenn ja, wie große diese sind und
>>welche Frequenz sie haben.
>
> Oh je, das klingt völlig übertheoretisiert. Mit dieser Spielerei kann
> man Diplomarbeiten füllen und anderen Unfug treiben, auf jeden Fall mal
> massig Zeit verschwenden.
>
> Das Problem dabei ist, daß du die Störung, woher sie auch immer kommen
> mag, nie als Ganzes samplest, sondern durch das Timing des
> Sensorauslesens du immer nur Aliasingprodukte siehst, also
> Schwebungseffekte. Das ist so, als ob du bei einem Speicheroszi die
> Ablenkzeit zu klein einstellst und dadurch höherfrequente Störungen
> nicht als solche sichtbar werden, sondern nur dessen Aliasingprodukte.
> Da kanst du dann tagelung nach einer 312,579Hz Störung fahnden, die
> letztlich garnicht vorhanden ist...
>
Natuerlich muss jedem klar sein, dass die FFT (genauer das
Powerspektrum) Probleme mit Aliasing hat, es gilt aber auch,
dass z.B. bei einer Pixelfrequenz von 10 MHz und 1024 Samples (eine
Pixelzeile) alle echten Frequenzen zwischen etwa 10 kHz und
5 MHz richtig gesampelt und damit auch dargestellt werden. Falls
nun noch spaltenweise die 1-d Powerspektren berechnet werden,
wird das Signal (und damit die Stoerung) etwa alle 100 us abgetaset.
Somit werden hier die Frequenzen im Bereich von etwa 10 Hz bis 5 kHz
richtig erfasst.

Falls nun z.B. ein Schaltregler mit maximal 1 MHz arbeitet, sind dessen
Stoerungen im Powerspektrum sichtbar. Damit die hoeheren Frequenzen
nun nicht zu Aliasing fueren, wird das Signal normalerweise
noch gefiltert.

> Doch selbst, wenn du all dieses Aliasing-Gedöns herausrechnest, was
> bringt es dir dann zu wissen, daß da eine ganz schwache 12,675kHz
> Störung ist? Dann weist du, daß du R345 um 7cm nach rechts und 3,4cm
> nach unten verschieben mußt?? Wo ist der geistige Nährwert dann dieses
> Befunds?? Ich sehe nicht, wie dir das helfen sollte, die Schaltung zu
> optimieren.
>
> Du mußt das Übel an der Wurzel packen und die Schaltung und das Layout
> so gestalten, daß die Störungen von vorne herein gering sind. Was du da
> mit dem FFT vorhast, ist letztlich ein Trial-And-Error Verfahren, daß
> dich um keinen Zentimeter voran bringt.
>
Das ist natuerlich richtig. Am besten ist es, die Stoerungen zu
beseitigen. Das Powerspektrum ist nun aber eine sehr empfindliche
Methode, den Erfolg der Massnahmen zu beurteilen.
Die Sensitivitaet kann durch die Mittelung noch deutlich
gesteigert werden (immerhin besteht ein einzelnes Bild aus vielen
Zeilen und Spalten).

Wir verwenden diese Nachweis(!)methode mittels Powerspektrum an
unserem Institut sehr erfolgreich fuer HAWAII-1 Infrarotdetektoren
und die bei uns selbst entwickelte Ausleeelektronik.

> Du weißt doch schon, wo die Störungen herrühren, von deinen
> Pixel-Schiebe-Taktsignalen. Route die anständig, verdrossele und filter
> ausreichend, dann brauchst du diesen ganzen FFT-Quark nicht. SCHAU DIR
> DAZU DAS LAYOUT DES EVAL-BOARDS GENAU AN !!!!!, wenn du nicht genügend
> Erfahrung hast und keinen erfahrenen Ingenieur in eurer Abteilung
> auftreiben kannst!
>
>>Ich bin mir ziemlich sicher, dass ich noch Störungen in meinem Bild
>>habe, kann sie aber leider rein visuell nicht mehr erfassen.
>
> Hallo?? Warum stören sie dich dann, wenn du sie nicht mehr sehen
> kannst???
>
> Kai Klaas

Matthias Heininger

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> ich möchte gerne ein Bild dahingehend analysieren, ob es noch
> periodische Störungen enthält und wenn ja, wie große diese sind und
> welche Frequenz sie haben.

Hi, Andi,

woran unterscheidest Du selbst den gewünschten Nachrichteninhalt im Bild 
von einer Störung?

Diese Unterscheidung ist der erste Schritt.
Im zweiten Schritt könnte sich ein Testbild bekannten Inhaltes lohnen - 
könnte auch voller Weißpegel sein - und dann ein Vergleich des Ist mit 
dem Soll.
Da könntest Du auch das FBAS-Signal von den Synchronsignalen trennen und 
auf Pegelschwankungen untersuchen.
Schau mal die professionellen Mess- und Testgeräte von Agilent oder 
Rohde&Schwarz, allerdings hat sich das Produktspektrum mit dem Übergang 
zu DVB-T verändert.

Ciao
Wolfgang Horn

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
der Thread ist zwar schon etwas älter, aber da ich gerade was ähnliches 
gesucht habe, und auch gefunden, dachte ich ich poste es hier einfach 
mal für die Nachwelt:

ImageJ ist ein spitzen opensource-Bildanalyseprogramm (auf Java 
basierend -> Plattformunabhängig!). Unter anderem kann man sich dort 
einen schönen 2D FFT-Plot anzeigen lassen...

http://rsbweb.nih.gov/ij/

Besten Gruß!

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.
Im Buch Praxiseinstieg LabVIEW, ISBN-10: 3772340393, enthält ein 
Beispiel
mit einer 2-dim FFT. Dabei wird zeilenweise eine FFT angewendet und 
danach spaltenweise eine FFT.

Im Beispiel ist noch ein Tiefpass realisiert und eine 
Rücktransformation.

2.
Bei einem Farbbild sind die Operation 2-DIM-FT auf jede Farbe getrennt 
anzuwenden.

(Oder das Farbbild vorher in ein Graubild umwandeln. Dann ist aber die 
Farbe für alle Zeiten weg.)

3.
Störfrequenzen können auch mit einer Faltung entfernt werden.
Stichwort: Kernel

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.