matlab边缘检测

上传人:自*** 文档编号:78877426 上传时间:2019-02-15 格式:DOC 页数:2 大小:195KB
返回 下载 相关 举报
matlab边缘检测_第1页
第1页 / 共2页
matlab边缘检测_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《matlab边缘检测》由会员分享,可在线阅读,更多相关《matlab边缘检测(2页珍藏版)》请在金锄头文库上搜索。

1、一 实验目的及原理: 利用MATLAB对灰度图进行边缘检测。比较直接调用各种算子进行边缘检测与模板卷积的方法的区别于效果。其中直接调用算子设计阈值的选取,不同阈值检测效果不同。二边缘检测代码:I=imread(dog2.bmp); I=rgb2gray(I);subplot(331)imshow(I)title(原始灰度图像) BW=edge(I,prewitt); %以自动域值选择法对图像进行Sobel算子边缘检测 subplot(332)imshow(BW)title(自动域值的prewitt算子边缘检测) BW,thresh=edge(I,prewitt); %返回当前Sobel算子边缘

2、检测的阈值 disp(prewitt算子自动选择的阈值为:) disp(thresh) BW1=edge(I,prewitt,0.02,horizontal); %以域值为0.02水平方向对图像进行Sobel算子边缘检测 subplot(333)imshow(BW1)title(域值为0.02的水平方向的prewitt算子检测) BW2=edge(I,prewitt,0.02,vertical); %以域值为0.02垂直方向对图像进行Sobel算子边缘检测 subplot(334)imshow(BW2) title(域值为0.02的垂直方向的prewitt算子检测) BW3=edge(I,pr

3、ewitt,0.05,horizontal); % 以域值为0.05水平方向对图像进行Sobel算子边缘检测 subplot(335)imshow(BW3) title(域值为0.05的水平方向的prewitt算子检测) BW4=edge(I,prewitt,0.05,vertical); % 以域值为0.05垂直方向对图像进行Sobel算子边缘检测 subplot(336)imshow(BW4) title(域值为0.05的垂直方向的prewitt算子检测) %用卷积实现b=-1 -1 -1;0 0 0;1 1 1;c=-1 0 1;-1 0 1;-1 0 1; %模板d=conv2(im2

4、double(I),b,same);d=abs(d); %处理水平方向算子的结果,参数same使得得到的图像与原图大小相等。e=conv2(im2double(I),c,same);e=abs(e); %处理垂直方向算子的结果f=max(d,e); %取水平及垂直方向上的大值subplot(337),imshow(uint8(d*255), title(卷积实现prewitt水平)subplot(338),imshow(uint8(e*255), title(卷积实现prewitt垂直)subplot(339),imshow(uint8(f*255), title(卷积实现prewitt综合)三实验结果:四实验结论:直接调用进行边缘检测效果不理想,边缘不明显,并且还涉及到阈值问题,在选取最佳阈值方面比较困难。若用卷积方法实现效果较好,边缘能基本检测出。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号