Isolieren Sie den nicht unscharfen Teil des Bildes


10

Ich habe ein Bild von einer Handykamera mit Fokus auf einen Teil davon, sagen wir ein Gesicht oder was auch immer. Ich möchte ungefähr wissen, wo sich der Schwerpunkt befindet. Zum Beispiel ein Begrenzungsrahmen um den fokussierten Bereich. Beispiel: Original Nach der Erkennung

Antworten:


7

Im Allgemeinen handelt es sich hierbei um ein Bildsegmentierungsproblem ( http://en.wikipedia.org/wiki/Image_segmentation ), bei dem Sie versuchen würden, die fokussierten auf die nicht fokussierten Bereiche des Bildes zu isolieren.

Optische Linsen entsprechen ohnehin Tiefpassfiltern, und die Wirkung eines Tiefpassfilters auf ein Signal besteht darin, es durch Begrenzung des höheren Frequenzgehalts auszugleichen.

Bei der digitalen Bildverarbeitung entsprechen niedrige Frequenzen großen Objekten (allgemeine Form) und höhere Frequenzen kleinen Objekten (Details).

Um den fokussierten Bereich zu isolieren, könnten Sie daher nach Bereichen suchen, die eine höhere Standardabweichung aufweisen als die unscharfen Bereiche, die aufgrund des Glättungsvorgangs der unscharfen Linse eine geringere Standardabweichung aufweisen würden.

M×N

M×N

Im Fall des Bildes in Ihrem Beitrag weist das Histogramm wahrscheinlich zwei Modi auf. Einer entspricht relativ hohen Werten der Standardabweichung (fokussierter Bereich) und einer entspricht relativ niedrigen Werten der Standardabweichung (unscharfe Bereiche).

Sie können dann einen Schwellenwert positionieren, beispielsweise nur zwischen den beiden Modi, um ein Kriterium zwischen Ihren fokussierten und nicht fokussierten Regionen festzulegen, und dann alle "Patches" (oder MxN-Fensterbereiche) auswählen, deren Standardabweichung höher als Ihr Schwellenwert ist. (Weitere Informationen finden Sie unter: http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29 )

Dadurch werden die fokussierten Teile des Bildes für Sie isoliert.

Hoffe das hilft.


Ich werde eine tiefe Lektüre für Ihre Antwort machen und mit einem
Feedback zurückkommen.

Vielen Dank, tolle und detaillierte Antwort, ich werde die Implementierung teilen, wenn ich mit opencv gute Ergebnisse erzielt habe.
Nochmals vielen

Ist übrigens ein grauer Vertreter des Bildes ausreichend oder muss ich jeden Kanal verarbeiten?
Humam Helfawi

Ich bin froh, dass du es hilfreich fandest. Das Arbeiten in Graustufen eignet sich gut für die Unterscheidung zwischen unscharfen und fokussierten Bereichen. Wenn Sie jedoch zusätzliche Farbinformationen hinzufügen, können Sie komplexere Bereiche vorschreiben (z. B. den Bereich eines Gesichts in einem Porträt verfolgen oder nur die Blume im Bild isolieren) deine Post).
A_A

Die Frage wurde nach der Diskussion unter meta.dsp.stackexchange.com/questions/1337/… @ vast- akademiker wieder in ihre ursprüngliche Form gebracht. Bitte fügen Sie Ihre Kommentare als separate Antwort hinzu. : Der Hauptteil wurde bei konserviert pastebin.com/kjCC1wM6
A_A

5

Hier ist ein einfacher Ansatz, der keine Schiebefensteranalyse beinhaltet.

  • Konvertieren Sie Ihr Bild in Graustufen (dies ist nicht erforderlich, aber ich gehe davon aus, dass Sie der Übersichtlichkeit halber nur einen Kanal haben).

  • Berechnen Sie den Gradienten in beide Richtungen

  • Berechnen Sie die Größe (oder quadrieren Sie einfach den Gradienten)

  • Summiere beide Verlaufsbilder in beide Richtungen

Wie bereits gesagt, hat der fokussierte Teil des Bildes höhere Frequenzen als der nicht fokussierte Bereich. Aus der Summierung ergeben sich zwei Projektionen, bei denen es in dem Teil, in dem sich das fokussierte Objekt entlang dieser Richtung befindet, große Abweichungen (höhere Werte) gibt. Sie können jetzt Folgendes tun:

  • Bestimmen Sie den Start- und Endpunkt dieser höheren Werte. Sie können einen einfachen Schwellenwert verwenden (z. B. 0,7 * maximaler Wert) oder die Profile glätten, die zweite Ableitung nehmen und dort nach den höchsten Werten suchen.

  • Die Start / Stopp-Positionen aus dem vorherigen Schritt geben Ihnen die Pixelpositionen in beiden Richtungen an, an denen Sie Ihr Rechteck für die Anzeige der Schärfe platzieren möchten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.