基于MATLAB的图像编辑软件开发(16)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于MATLAB的图像编辑软件开发(16)


    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);

5.5.2    图像锐化
在图像识别中,需要有边缘鲜明的图像,即图像的锐化。图像锐化的目的是为了突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。然而边缘模糊时图像中常出现的质量问题,由此造成的轮廓不清、线条不鲜明,使图像特征提取、识别和理解难以进行。增强图像边缘和线条,使图像边缘变得清晰的处理成为图像锐化。下图5.14为本系统中对图像锐化的结果图。
 
图5.14   梯度锐化 (责任编辑:qin)