在matlab中骨架化后的虚线输出

dotted output after skeletonization in matlab

我想骨架化这张图片

为此,我使用了 matlab 的 bwmorph 函数,这是代码片段:

bw = bwmorph(img_bw,'skel',Inf);

但是输出与预期不同。这是输出。

有人可以建议一种更好的方法来获得正确的结果吗?

编辑: 这是一个精简的相关代码

img = imread(name);
img = rgb2gray(img*4);
img_bw = img > 50;
img_bw = medfilt2(img_bw,[10 10]);
bw = bwmorph(img_bw,'skel',Inf);

您看到的是锯齿,imshow 函数无法显示完整图像,因为它太大以适合屏幕。为了适应屏幕,一些行和列被跳过,这导致行被断开。要使用滚动面板以全分辨率显示图像,请使用 imscrollpanel

hFig = figure('Toolbar','none', 'Menubar','none');
hIm = imshow(bw);
hSP = imscrollpanel(hFig,hIm);