Wie kann man das Rauschen entfernen, ohne die Hauptkante zu zerstören?

8

Ich arbeite an einem Projekt. Ich möchte ein Logo von einem Auto segmentieren und das Bild hat eine Größe von 3648 * 2432. Das Logo wird durch das rote Rechteck ausgewählt.

Geben Sie hier die Bildbeschreibung ein

Ich habe diesen Bereich extrahiert und mich in Graustufen verwandelt. Die Größe des Gebiets beträgt 249 * 173. Dann verwende ich Histogrammausgleich, um die Kante zu verbessern. Schließlich benutze ich adaptive Canny, um Kanten zu finden.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Das Ergebnis ist jedoch nicht perfekt. Also habe ich den Medianfilter verwendet, um das linke Bild zu glätten. Das Ergebnis ist wie folgt.

Geben Sie hier die Bildbeschreibung ein

Ich entferne die kleinen Teile.

Geben Sie hier die Bildbeschreibung ein

Das Ergebnis wurde verbessert, ist aber auch nicht gut. Außerdem habe ich bilaterale Filter, Mittelwertfilter und Gauß-Filter ausprobiert, aber das Ergebnis ist auch nicht gut. Ich weiß, dass nach dem Passieren des Histogrammausgleichs das Rauschen verstärkt werden kann. In einigen Fällen mit geringem Kontrast muss ich diesen Schritt anpassen, um mein Bild zu verbessern. Kann mir jemand einen anderen Kommentar geben? Vielen Dank.

Kuo
quelle

Antworten:

7

Verwenden Sie zuerst einen bilateralen Filter oder eine anisotrope Diffusion .

Der Effekt der anisotropen Diffusion ist wie folgt:

Geben Sie hier die Bildbeschreibung ein. Den MATLAB-Code finden Sie hier .

Hier ist die Auswirkung auf Ihr Bild: Geben Sie hier die Bildbeschreibung ein

Schließlich sind nicht lokale Mittel auch ein guter Weg, um den Lärm loszuwerden. Vielleicht möchten Sie auch einen Blick darauf werfen. Ich warne Sie jedoch, es ist langsam.

Tolga Birdal
quelle
Probieren Sie es aus: github.com/RoyiAvital/… Viel weiter fortgeschritten als die klassische anisotrope Diffusion.
Royi
1
@tbirdal: Anisotrope Diffusion scheint interessant zu sein. Wenn Sie eine Reihe von Original- und verarbeiteten Bildbeispielen zusammen mit der Generierung von Matlab-Code bereitstellen können, wäre dies wünschenswert.
Fat32
Bitte noch einmal überprüfen.
Tolga Birdal
Vielen Dank für die Beispiele und den Code. Ich habe meine eigene sehr einfache Verarbeitung im Link bereitgestellt: [IMG] i62.tinypic.com/2w3t6gz.jpg[/IMG] . Seine Wirkung auf die Lena ist viel besser, aber es ist kein Kantendetektor. Nur ein rauschreduzierender Bildschärfer.
Fat32
Ich werde den Artikel über anisotrope Diffusion lesen. Außerdem, @Drazick, hat der Code in Github einen Fehler, wenn das Bild größer als ungefähr 328 * 228 ist, aber das Ergebnis eines kleinen Bildes ist gut. Vielen Dank für Ihre begeisterte Antwort.
Kuo
3

Ich würde keinen Ausgleich als ersten Schritt vorschlagen. Gehen Sie mit Geräuschreduzierung.

Fat32
quelle
Sie denken also, dass ich zuerst das Rauschen reduzieren muss? Dann Histogrammausgleich implementieren?
Kuo
ja zuerst den Lärm reduzieren. Ein blinder Histogrammausgleich kann Ihre Kanten verbessern oder nicht. So verbessern Sie Ihre Kanten besser adaptiv.
Fat32
Wann reduziert Kantenschärfen das Rauschen?
Tolga Birdal
Gibt es eine Methode, mit der ich meinen Vorsprung verbessern kann? Ich habe Highboost-Filterung ausprobiert, aber bei geringem Kontrast kann die Highboost-Filterung nicht gut funktionieren.
Kuo
@tbirdal Rauschen wird reduziert, bevor die Kante geschärft wird. Tatsächlich ist mein Algorithmus ein raumvarianter nichtlinearer kantenadaptiver Bildschärfer. Sein Hauptzweck ist es, scharfe Bilder von visuell hoher Qualität zu erzeugen, während die Textur erhalten bleibt und das Rauschen nicht verstärkt wird. Da jedoch versucht wird, Texturen vor dem Auswaschen durch die Rauschunterdrückung zu schützen, wird möglicherweise nicht für alle Arten von Geräuschen das gewünschte Ergebnis erzielt.
Fat32