赞
踩
自从搞了简单的文字识别之后,就在考虑机器视觉还能为我的研究生盆子上镶点什么金边,简单搜了一下文献,对于刀具磨损的视觉识别还是不少的,但是要么是拆下来拍照检测,要么是固定在某个位置检测,机器视觉还没有真正实现在机检测,又去某国内学术网站搜了一下,发现这个东西够一篇硕士毕业论文了,那还是简单搞搞吧。
wear tool应该与new tool进行轮廓对比,所以就需要得到两种刀具的轮廓。下面是我的new tool和wear tool:
边缘检测就是算法,直接上代码了。我对各个滤波方法和边缘检测算子进行了对比,代码和对比结果如下:
- %比较滤波效果
- A = imread('D:\Users\weixi\MATLAB\Projects\cv_edge\new.jpg');%读入彩色图片
- B=rgb2gray(A);%把彩色图片转化成灰度图片,256级
- B_gaosi=imnoise(B,'gaussian');%加入高斯噪声
- h=fspecial('average',6);%fspecial函数用于预定义滤波器
-
- A_junzhi=uint8(round(filter2(h,B)));%进行均值滤波
- A_zhongzhi=medfilt2(B,[8,8]);%进行中值滤波
- A_weina=wiener2(B,[8,8]);%进行维纳滤波
-
- i_max=double(max(max(B))); %获取亮度最大值
-
- i_min=double(min(min(B))); %获取亮度最小值
-
- thresh=round(i_max-((i_max-i_min)/3)); %计算灰度图像转化成二值图像的门限thresh
-
- B_2=(B>=thresh); %B_2为二值图像
-
- A_junzhi_2=uint8(round(filter2(h,B_2)));%进行均值滤波
- A_zhongzhi_2=medfilt2(B_2,[3,3]);%进行中值滤波
- A_weina_2=wiener2(B_2,[3,3]);%进行维纳滤波
-
- figure(1);
- subplot(3,3,1);imshow(B);title('原灰度图像','color','b');
- subplot(3,3,2);imshow(B_2);title('二值图像','color','b');
- subplot(3,3,3);imshow(B_gaosi);title('加入高斯噪声后的图像','color','b');
- subplot(3,3,4);imshow(A_junzhi);title('均值滤波后的图像','color','b');
- subplot(3,3,5);imsh

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。