介绍一个神函数:bwmorph。人生苦短,我还是选matlab吧。
背景:需要把图像中提取出来的粗轮廓“压缩”成一个像素点的细线,即骨骼提取。本来的轮廓粗细不均匀,用图像腐蚀会导致一些点断掉。(注:轮廓内部需要填充)
%openclose
se = strel('disk', 5, 4);
fo = imclose(img, se);
figure(1)
imshow(fo)
strel定义核的形状和大小,关键字‘disk’指圆形核,后面两个数字指核的大小和圆的半径。这个函数还有其他形状的核,但此处目的为了平滑轮廓,所以选圆形核。
ginf = bwmorph(fo, 'thin', 100);
关键字‘thin’的作用不太清楚,后面有机会再去研究,数字100指迭代次数,可以用‘Inf’代替,迭代次数不同效果也不同。
for k = 1:15ginf = ginf & ~endpoints(ginf);
end
figure(2)
imshow(ginf)
k也表示迭代次数,该操作可以去除上一部提取的骨骼中的小骨刺。
endpoints函数库中好像没有&
本文发布于:2024-01-28 03:50:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063850454570.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |