for m=1:256
for n=1:256
if (m<=row)&(n<=col)
extendx(m,n)=g(m,n);
else
extendx(m,n)=realmax;
end
end
end
axes(handles.axes2);
imshow(extendx,[]);
else
M=max(row,col);
for m=1:M
for n=1:M
if (m<=row)&(n<=col)
extendx(m,n)=g(m,n);
else
extendx(m,n)=realmax;
end
end
end
axes(handles.axes2);
imshow(extendx,[]);
msgbox('The output image has a width or height larger than 256!','HELP','help');
end
handles.imdata=g;
guidata(hObject, handles);
5.5 图像增强
5.5.1 平滑去噪
平滑运算的目的是消除或尽量减少噪音,改善图像的质量,为了更好的显示平滑去噪的效果,在本系统中,先对图像进行加噪处理,然后再平滑去噪。从信号分析的观点来看,图像平滑本质上是低通滤波,它通过信号的低频部分,阻截高频的噪音信号。下图5.13即为平滑去噪在系统中的运行结果。
图5.13 加噪平滑后的图像
加噪平滑的代码如下:
function AddNoise_Callback(hObject, eventdata, handles)
f=handles.imdata;
[M,N]=size(f);
f1=imnoise(f,'salt & pepper',0.04);
extendx=double(zeros(256));
if (M<=256)&(N<=256)
W=256;
else
W=max(M,N);
end
for m=1:W
for n=1:W
if (m<=M)&(n<=N)
extendx(m,n)=f1(m,n);
else
extendx(m,n)=realmax;
end
end
end
axes(handles.axes2),imshow(extendx,[min(min(f1)),max(max(f1))]);
handles.imdata=f1;
guidata(hObject, handles);