基于MATLAB的图像编辑软件开发(18)
时间:2016-11-30 19:14 来源:毕业论文 作者:毕业论文 点击:次
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) |