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

毕业论文移动版

毕业论文 > 计算机论文 >

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


     for n=1:W
          if (m<=row)&(n<=col)
          extendx(m,n)=x(m,n);
          else
              extendx(m,n)=realmax;
          end
     end
end
axes(handles.axes2);
imshow(extendx,[0,255]);
msgbox('If the result is not satisfying,there maybe more than two peak values in the Histogram? ','Help','help');
handles.imdata=x;
guidata(hObject, handles);
5.6.2    图像边缘检测
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同区域内部的特征或属性是不同的。边缘的检测正是利用物体和背景在某种图像特性上的差异来实现的,这种差异包括灰度、颜色或者纹理特征。边缘检测实际上就是检测图像特性发生变化的位置。本系统中边缘检测的运行结果如下图5.16所示:
 
图5.16    Robert算子实现边缘检测
Robert算子实现边缘检测的主要代码如下:
function Robert_Callback(hObject, eventdata, handles)
tic;
f=handles.imdata;
f1=double(f);
[row,col]=size(f);
f2=zeros([row,col]);
for x=2:(row-1);
    for y=2:(col-1);
        f2(x,y)=sqrt((abs(f1(x,y)-f1(x+1,y+1)))^2+(abs(f1(x+1,y)-f1(x,y+1)))^2);
    end
end
Time=toc;
set(handles.edit1,'string',Time);
extendx=double(zeros(256));
if (row<=256)&(row<=256)
    W=256;
else
    W=max(row,col);
end
for m=1:W
     for n=1:W
          if (m<=row)&(n<=col)
          extendx(m,n)=f2(m,n);
          else
              extendx(m,n)=realmax;
          end
     end
end
axes(handles.axes2),imshow(extendx,[min(min(2)),max(max(f2))]);
handles.imdata=f2;
guidata(hObject, handles);
 
图5.17   Laplacian算子实现边缘检测
Laplacian算子实现边缘检测主要代码如下: (责任编辑:qin)