当前位置:   article > 正文

边缘检测(matlab)_matlab边缘检测

matlab边缘检测

自从搞了简单的文字识别之后,就在考虑机器视觉还能为我的研究生盆子上镶点什么金边,简单搜了一下文献,对于刀具磨损的视觉识别还是不少的,但是要么是拆下来拍照检测,要么是固定在某个位置检测,机器视觉还没有真正实现在机检测,又去某国内学术网站搜了一下,发现这个东西够一篇硕士毕业论文了,那还是简单搞搞吧。

wear tool应该与new tool进行轮廓对比,所以就需要得到两种刀具的轮廓。下面是我的new tool和wear tool:

           

 边缘检测就是算法,直接上代码了。我对各个滤波方法和边缘检测算子进行了对比,代码和对比结果如下:

  1. %比较滤波效果
  2. A = imread('D:\Users\weixi\MATLAB\Projects\cv_edge\new.jpg');%读入彩色图片
  3. B=rgb2gray(A);%把彩色图片转化成灰度图片,256
  4. B_gaosi=imnoise(B,'gaussian');%加入高斯噪声
  5. h=fspecial('average',6);%fspecial函数用于预定义滤波器
  6. A_junzhi=uint8(round(filter2(h,B)));%进行均值滤波
  7. A_zhongzhi=medfilt2(B,[8,8]);%进行中值滤波
  8. A_weina=wiener2(B,[8,8]);%进行维纳滤波
  9. i_max=double(max(max(B))); %获取亮度最大值
  10. i_min=double(min(min(B))); %获取亮度最小值
  11. thresh=round(i_max-((i_max-i_min)/3)); %计算灰度图像转化成二值图像的门限thresh
  12. B_2=(B>=thresh); %B_2为二值图像
  13. A_junzhi_2=uint8(round(filter2(h,B_2)));%进行均值滤波
  14. A_zhongzhi_2=medfilt2(B_2,[3,3]);%进行中值滤波
  15. A_weina_2=wiener2(B_2,[3,3]);%进行维纳滤波
  16. figure(1);
  17. subplot(3,3,1);imshow(B);title('原灰度图像','color','b');
  18. subplot(3,3,2);imshow(B_2);title('二值图像','color','b');
  19. subplot(3,3,3);imshow(B_gaosi);title('加入高斯噪声后的图像','color','b');
  20. subplot(3,3,4);imshow(A_junzhi);title('均值滤波后的图像','color','b');
  21. subplot(3,3,5);imsh
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/846153
推荐阅读
相关标签
  

闽ICP备14008679号