在 Matlab 中,我将噪声添加到具有已知方差的图像中。我知道我可以通过以下方式做到这一点:
var = 0.01;
i = im2double(imread('lena.bmp'));
i_n = imnoise(i, 'gaussian',0,var);
很明显,生成的图像有噪点。但是,如果我尝试通过计算高通滤波器的中值来估计噪声方差,我真的看不到任何相关性
k = [1 4 6 4 1]'*[1 4 6 4 1];
kk = k ./sum(sum(k));
var_est = median(median(abs(i_n - imfilter(i_n,kk))))
var_est(:,:,1) =
0.0631
var_est(:,:,2) =
0.0620
var_est(:,:,3) =
0.0625
我很欣赏估计方差是一个难题,但我只想得到一个相当接近的结果,例如 50% 的误差是可以容忍的。我在做什么不正确?