MATLAB中基于GUI的噪声抑制imnoise,medfilt2命令
源代碼:
%噪聲抑制
% --- Executes on button press in Noise.
function Noise_Callback(hObject, eventdata, handles)
global x
global p
y=rgb2gray(x);
p = imnoise(y,'salt & pepper',0.1); %加10%的椒鹽
axes(handles.axes1);
imshow(p);
g=medfilt2(p);
axes(handles.axes2);
imshow(g);
imnoise用法:
在MATLAB中,使用函數imnoise函數來使用噪聲污染一幅圖像:
g = imnoise(f, type, parameters)
輸出:g是被污染的圖像
輸入:f是輸入的原圖像,type是加入的噪聲類型,parameters是噪聲的一些參數:
g=imnoise(f,‘gaussian’,m,var)是將均值為m,方差為var的高斯噪聲加到圖像f上。m的默認值是0、var默認值是0.01。
g=imnoise(f,‘salt & pepper’,d)用椒鹽噪聲污染圖像f,其中d是噪聲密度(即包含噪聲值的圖像區域的百分比)。因此,大約有d*numel(f)個像素受到污染,默認的噪聲密度為0.05。
g=imnoise(f,‘speckle’,var)用方程g=f + n*f將乘性噪聲添加到圖像f上,其中n是均值為0、方差為var的均勻分布的隨機噪聲。var的默認值為0.04。
medfilt2用法:
? ? ?? 中值濾波是圖像處理中的一個常用步驟,它對于斑點噪聲(en:speckle noise)和椒鹽噪聲(en:salt-and-pepper noise)來說尤其有用。保存邊緣的特性使它在不希望出現邊緣模糊的場合也很有用。當要求在降低噪聲的同時要求保持邊緣,中值濾波較卷積有更好的效果。
在matlab中,medfilt2函數用于執行二維中值濾波,使用方法如下:
B = medfilt2(A, [m n])?
B = medfilt2(A)
B = medfilt2(A, ’indexed’, ...)
其中[m n]表示鄰域塊的大小,默認值為[3 3]。
//b=medfilt2(a,[m,n]);
b是中值濾波后的圖象矩陣,a是原圖矩陣,m和n是處理模版大小,默認3×3。
?
?
總結
以上是生活随笔為你收集整理的MATLAB中基于GUI的噪声抑制imnoise,medfilt2命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux字符串替换命令,Linux系统
- 下一篇: 六年级计算机教学进度计划,六年级下册信息