问题描述:
已有传送带上的二值零件图,将传送带上的工件按有孔和无孔进行分类;
算法:
(1)填充孔洞后得到I1:imfill
(2)I1减去原图,得到以孔洞为目标的图
(3)分别标记原图与孔洞图的连通域:bwlabel
(4)分别测量孔洞连通域的中心以及原图连通域的坐标:regionprops函数
(5)遍历连通域,计算每个连通域坐标的最小值与最大值,判断孔洞的中心点是否在连通域中,若在连通域中,则记录此连通域的flag为1。
(6)显示原图,并且遍历连通域,当flag为1时,表明此连通域是由孔洞的,用绿色的框标出,flag为0时,表明此连通域无孔洞,用红色的框标出。
代码实现:
clear all
I=imread("blocks.png");
subplot(1,3,1)
imshow(I);
title("原图");
%% 孔洞检测
I1=imfill(I,'holes');
img=I1-I;
subplot(1,3,2)
imshow(img);
title("孔洞提取");
[L,num]=bwlabel(I);
[L1,num1]=bwlabel(img);
i

最低0.47元/天 解锁文章
1833

被折叠的 条评论
为什么被折叠?



