4.1Canny算子检测的程序及仿真图BW=edge(I,canny);%以自动....doc_第1页
4.1Canny算子检测的程序及仿真图BW=edge(I,canny);%以自动....doc_第2页
4.1Canny算子检测的程序及仿真图BW=edge(I,canny);%以自动....doc_第3页
4.1Canny算子检测的程序及仿真图BW=edge(I,canny);%以自动....doc_第4页
4.1Canny算子检测的程序及仿真图BW=edge(I,canny);%以自动....doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

41 canny算子检测的程序及仿真图bw = edge(i,canny);% 以自动阈值选择法对图像进行canny算子检测bw,thresh = edge(i,canny);% 返回当前canny算子边缘检测的阈值disp(canny算子自动选择的阈值为:)disp(thresh)subplot(121),imshow(bw);title(自动阈值的canny算子边缘检测)bw = edge(i,canny,0.2 0.5);% 以阈值为0.1 0.5对图像进行canny算子检测subplot(122),imshow(bw);title(阈值为0.1 0.5的canny算子边缘检测)图 142 roberts算子检测的程序及仿真图i = imread(rice.tif);bw1 = edge(i,roberts);% 以自动阈值选择法对图像进行roberts算子检测bw1,thresh1 = edge(i,roberts);% 返回当前roberts算子边缘检测的阈值disp(roberts算子自动选择的阈值为:)disp(thresh1)subplot(121),imshow(bw1);title(自动阈值的roberts算子边缘检测)bw1 = edge(i,roberts,0.05);% 以阈值为0.05对图像进行roberts算子检测subplot(122),imshow(bw1);title(阈值为0.05的roberts算子边缘检测)bw2 = edge(i,sobel);% 以自动阈值选择法对图像进行sobel算子检测figure,subplot(131),imshow(bw2);title(自动阈值的sobel算子边缘检测)bw2,thresh2 = edge(i,sobel);% 返回当前sobel算子边缘检测的阈值disp(sobel算子自动选择的阈值为:)disp(thresh2)bw2 = edge(i,sobel,0.05,horizontal);% 以阈值为0.05水平方向对图像进行sobel算子检测subplot(132),imshow(bw2);title(阈值0.05水平方向sobel算子)bw2 = edge(i,sobel,0.05,vertical);% 以阈值为0.05垂直方向对图像进行sobel算子检测subplot(133),imshow(bw2);title(阈值0.05垂直方向sobel算子)bw3 = edge(i,prewitt);% 以自动阈值选择法对图像进行prewitt算子检测figure,subplot(131),imshow(bw3);title(自动阈值的prewitt算子边缘检测)bw3,thresh3 = edge(i,prewitt);% 返回当前prewitt算子边缘检测的阈值disp(prewitt算子自动选择的阈值为:)disp(thresh3)bw3 = edge(i,prewitt,0.05,horizontal);% 以阈值为0.05水平方向对图像进行prewitt算子检测subplot(132),imshow(bw3);title(阈值0.05水平方向prewitt算子)bw3 = edge(i,prewitt,0.05,vertical);% 以阈值为0.05垂直方向对图像进行prewitt算子检测subplot(133),imshow(bw3);title(阈值0.05垂直方向prewitt算子)图 2图 3图 443 log算子检测的程序及仿真图i = imread(rice.tif);bw1 = edge(i,log);% 以自动阈值选择法对图像进行log算子检测bw1,thresh1 = edge(i,log);% 返回当前log算子边缘检测的阈值disp(log算子自动选择的阈值为:)disp(thresh1)subplot(121),imshow(bw1);title(自动阈值的log算子边缘检测)bw1 = edge(i,log,0.005);% 以阈值为0.005对图像进行log算子检测subplot(122),imshow(bw1);title(阈值为0.005的log算子边缘检测)h=fspecial(gaussian,5);% 设计高斯滤波器bw2,thresh2 = edge(i,zerocross,h);% 返回当前零交叉检测边缘检测的阈值disp(零交叉检测自动选择的阈值为:)disp(thresh2)figure,subplot(121),imshow(bw2);title(自动阈值的零交叉边缘检测)bw2 = edge(i,zerocross,0.03,h);% 以阈值为0.03对图像进行零交叉检测subplot(122),imshow(bw2);title(阈值为0.03的零交叉边缘检测)图 5图 65、膨胀与腐蚀的算法概念及程序 膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素b平移a后得到ba,若ba击中x,我们记下这个a点。所有满足上述条件的a点组成的集合称做x被b膨胀的结果。用公式表示为:d(x)=a | bax=x b,如图6.13所示。图6.13中x是被处理的对象,b是结构元素,不难知道,对于任意一个在阴影部分的点a,ba击中x,所以x被b膨胀的结果就是那个阴影部分。阴影部分包括x的所有范围,就象x膨胀了一圈似的,这就是为什么叫膨胀的原因。把结构元素b平移a后得到ba,若ba包含于x,我们记下这个a点,所有满足上述条件的a点组成的集合称做x被b腐蚀(erosion)的结果。用公式表示为:e(x)=a| ba x=x b。程序如下:blood = imread(blood1.bmp);x,y=size(blood); % 求出图象大小b=double(blood); n =sqrt(100) * randn(x,y); % 生成方差为10的白噪声i=b+n; % 噪声干扰图象for i=1:x % 实际图象的灰度为0255 for j=1:y if (i(i,j)255) i(i,j)=255; end if (i(i,j)=allow) % 迭代最佳阈值分割算法 count=count+1; for i=1:x for j=1:y if (i(i,j)=t) s0=s0+i(i,j); n0=n0+1; end if (i(i,j)=t) seg(i,j)=1; % 阈值分割的图象 end endendsi=1-seg; % 阈值分割后的图象求反,便于用腐蚀算法求边缘se1=strel(square,3); % 定义腐蚀算法的结构si1=imerode(si,se1); % 腐蚀算法bw=si-si1; % 边缘检测%=传统的边缘检测方法=%i=uint8(i);bw1=edge(i,sobel, 0.11);bw2=edge(i,log, 0.015);%=图象显示=%figure(1);imshow(i);ti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论