边缘检测matlab 概念,matlab边缘检测

《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,pre。

3、witt,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(im2d。

4、ouble(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综合)三实验结果:四实验结论:直接调用进行边缘检测效果不理想,边缘不明显,并且还涉及到阈值问题,在选取最佳阈值方面比较困难。若用卷积方法实现效果较好,边缘能基本检测出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值