如何使用matlab找到图像中的噪声标准偏差?

时间:2014-04-01 05:42:05

标签: matlab

作为我项目的一部分,最初会找到输入图像的低分辨率。然后作为第二步,我需要在低分辨率图像中找到噪声。如何使用matlab查找图像中的噪声及其标准差?

3 个答案:

答案 0 :(得分:1)

您可以使用std matlab函数返回矩阵的标准偏差。

std_deviation = std(image);

这将为您提供整个图像的标准偏差。但是,由于您没有原始滤波图像,因此无法计算噪声标准。

可能的解决方案:(不准确):这假设您的噪音是高斯

好吧,你可以渲染几个Noise矩阵并测试它们: (选择mean_vectorstd_vector

for i = 1 : length(mean_vector) % or length(std_vector) Noise(:,:,i) = mean_vector(i) + std_vector(i).*randn(size(your_image)) % extracting the possibly filtered image filtered_img(:,:,i) = your_image - Noise(:,:,i); end

然后显示每个filtered_img并选择看起来噪音较小的那个。

答案 1 :(得分:1)

您可以对图像进行去噪,计算原始图像和去噪版本之间的差异,然后计算差异的标准差。 例如:

a=imread('input');
a=double(a);
b=imsharpen(a); %you may need to tune the parameters
diff=b-a;
noise=std2(diff);

答案 2 :(得分:0)

假设您知道分布,您可以在图像中找到噪声的方差。如果你已经阅读过Donoho&amp ;;的图像去噪领域的一些伟大作品,你就会知道这一点。约翰。

找到噪音标准。开发。对于具有高斯污染(附加)的图像中的噪声,您可以使用以下内核对图像的导数使用中值绝对偏差(MAD)估计:

我正在为此编写python代码,您可以在Matlab中轻松编写它:

SELECT name, COUNT(email) 
FROM users
GROUP BY email 
HAVING ( COUNT(email) > 1 )

您可以看到派生和逻辑Here on Wikipedia.

同样,大多数人认为可以做到。如果您之前没有任何关于图像中污染类型的信息,则情况属实。