Пунктирный вывод после скелетонизации в matlab

Я хочу скелетировать это изображение

Для этого я использую Matlab's 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);

1 ответ

Решение

То, что вы видите, это псевдоним, imshow Функция не может отображать полное изображение, потому что оно слишком велико, чтобы соответствовать экрану. По размеру экрана некоторые строки и столбцы пропускаются, что приводит к отключению линий. Чтобы отобразить изображение в полном разрешении с помощью панели прокрутки, используйте imscrollpanel

hFig = figure('Toolbar','none', 'Menubar','none');
hIm = imshow(bw);
hSP = imscrollpanel(hFig,hIm);
Другие вопросы по тегам