matlab下对齿轮图片的参数提取
目标:基于matlab对下面图片的各个参数进行提取
图片预处理:
首先读入图片,二值化,用canny算子边缘提取,由于接下来要用与中心提取,细化边缘。
代码:
bw1=imread('gear.bmp'); %读取图片
subplot(2,2,1);
imshow(bw1);%展示读取到的图片
bw2=im2bw(bw1);%将图片二值化
subplot(2,2,2);
imshow(bw2);%展示二值化后的图片
bw3=edge(bw2,'canny');%对二值化的图片边缘提取
subplot(2,2,3);
imshow(bw3);%展示边缘提取后的图片
bw4 = bwmorph(bw3,'remove');%对边缘提取后的图片进行细化
subplot(2,2,4);
imshow(bw4);%展示细化提取后的图片
结果:
边缘追踪获得齿轮边缘以及内圆的像素值:
代码:
figure;%另开一个图像窗口验证边缘追踪的结果是否正确
imshow(bw4);
x1 = 314; y1 = 132;%由之前运行结果可以查bw4的数值,该点应该在齿轮边缘上,由该点开始边缘追踪
gearline = bwtraceboundary