【发布时间】:2021-09-15 10:24:19
【问题描述】:
我想从二叉树中得到一个 1 像素宽的骨架。应用我的代码后得到的骨架有一些小的错误分支,并且不是 1 像素宽。如何获得完美的骨架?
使用 Frangi 过滤器增强血管,并在执行阈值处理后提取二叉树。这是当时的图像:
然后,进行细化得到骨架:
% getting the skeleton
Iskel = bwmorph(Out,'thin',8);
figure,imshow(Iskel);
% because of the discontinuity in my skeleton, I've applied imdilate to create continuity
se = strel('square',2);
Skel = imdilate(Iskel, se);
figure,imshow(Skel); title('Skel 8');
我希望输出是 1 像素宽的骨架,但实际上我不确定我的骨架是 1 像素宽,而且还有小的假分支。
【问题讨论】:
-
能否请edit 将您的问题与minimal reproducible example 更接近?特别是,我怀疑你所拥有的和你期望的可能会有很大帮助。
-
你试过
bwskel吗?如果这不比细化效果更好,您需要上传您的图像和结果,以便我们知道您在此处讨论的内容。 -
所以当我将代码应用到这张图片时,我看到的是细化后的 1 像素刻度骨架。当然在
imdilate之后它不再是 1 像素厚,膨胀使它变厚。您可以在细化之前应用膨胀来连接结构。