我正在使用几何均值滤波器而不是中值滤波器来消除噪声,因为在前一种情况下图像质量会下降。下面显示的代码是 m 文件的一部分,用于去除噪声。
fname = getappdata(0, 'fname');
[a, map] = imread(fname);
x = ind2rgb(a, map);
b = im2double(x);
w=fspecial('gaussian',[3,3]);
geom=exp(imfilter(log(b),ones(3,3),'replicate')).^(1/3/3);
fname=imfilter(b,w,'replicate');
axes(handles.axes1);
imshow(fname);
如果我按下上面代码中名为“消除噪音”的按钮,则无论图像质量/属性如何,都会执行。从某种意义上说,即使不存在噪声,图像也会经过过滤。
我的问题是,有没有办法检测是否存在噪音,所以当我按下按钮时,如果图像中没有噪音,它应该会自动显示一条消息,说明“没有噪音要移除”。