Verwenden von Imnoise, um einem Bild Gaußsches Rauschen hinzuzufügen

8

Wie füge ich einem Bild mit Hilfe von imnoise ? weißes Gaußsches Rauschen mit SNR = 5dB hinzu?

Ich weiß, dass die Syntax lautet:

%Vor%

und:

  

SNR = 10log10[var(image)/var(error image)]

Wie verwende ich diesen SNR-Wert, um Rauschen zum Bild hinzuzufügen?

    
Abhilash 15.04.2013, 05:31
quelle

1 Antwort

11

Beginnen wir damit, zu sehen, wie sich das SNR auf das Rauschen bezieht. Ihr Fehlerbild ist der Unterschied zwischen dem Originalbild und dem Bild mit Rauschen, was bedeutet, dass das Fehlerbild das Rauschen selbst ist. Daher ist das SNR tatsächlich:

  

SNR = 10log10[var(image)/var(noise)]

Für ein gegebenes Bild und SNR = 5db wäre die Varianz des Rauschens:

  

var(noise) = var(image)/10SNR/10 = var(image)/sqrt(10)

Lassen Sie uns dies nun in MATLAB-Code übersetzen. Um einem Bild weißes Gaußsches Rauschen hinzuzufügen (bezeichne es I ), indem du den Befehl imnoise verwendest, lautet die Syntax:

%Vor%

Dabei ist m das mittlere Rauschen und v ist seine Varianz. Es ist auch wichtig zu beachten, dass imnoise davon ausgeht, dass die Intensitäten in Bild I von 0 bis 1 reichen.

In unserem Fall addieren wir ein Rauschen mit mittlerem Mittelwert und seine Varianz ist v = var(I(:))/sqrt(10) . Der vollständige Code ist:

%Vor%

Klarstellung: Wir verwenden var(I(:)) , um die Varianz aller Stichproben in image I zu berechnen (anstelle von var(I) , was die Varianz entlang der Spalten berechnet).

Hoffe, das hilft!

Beispiel

%Vor%

Hier ist das Ergebnis:

    
Eitan T 15.04.2013, 09:37
quelle

Tags und Links