matlab 图像中加入高斯白噪声,matlab – 使用imnoise为图像添加高斯噪声
讓我們首先看看SNR與噪聲的關系.您的錯誤圖像是原始圖像和噪聲圖像之間的差異,這意味著錯誤圖像是噪聲本身.因此,SNR實際上是:
SNR = 10log10[var(image)/var(noise)]
對于給定的圖像和SNR = 5db,噪聲的方差將是:
var(noise) = var(image)/10SNR/10 = var(image)/sqrt(10)
現在讓我們將所有這些轉換成MATLAB代碼.要使用imnoise命令將白高斯噪聲添加到圖像(表示I),語法為:
I_noisy = imnoise(I, 'gaussian', m, v)
其中m是平均噪聲,v是其方差.同樣重要的是要注意,imnoise假設圖像I的強度范圍從0到1.
在我們的例子中,我們將添加零均值噪聲,其方差為v = var(I(:))/ sqrt(10).完整的代碼是:
%// Adjust intensities in image I to range from 0 to 1
I = I - min(I(:));
I = I / max(I(:));
%// Add noise to image
v = var(I(:)) / sqrt(10);
I_noisy = imnoise(I, 'gaussian', 0, v);
澄清:我們使用var(I(:))來計算圖像I中所有樣本的方差(而不是var(I),它計算沿列的方差).
希望這可以幫助!
例
I = imread('eight.tif');
I = double(I);
%// Adjust intensities in image I to range from 0 to 1
I = I - min(I(:));
I = I / max(I(:));
%// Add noise to image
v = var(I(:)) / sqrt(10);
I_noisy = imnoise(I, 'gaussian', 0, v);
%// Show images
figure
subplot(1, 2, 1), imshow(I), title('Original image')
subplot(1, 2, 2), imshow(I_noisy), title('Noisy image, SNR=5db')
這是結果:
總結
以上是生活随笔為你收集整理的matlab 图像中加入高斯白噪声,matlab – 使用imnoise为图像添加高斯噪声的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机2个按钮逻辑设计http://
- 下一篇: 模拟集成电路大牛的经验