将图像Matlab中的轮廓转换为折线

Convert contour to broken line in image Matlab

我在 Matlab 中遇到以下问题:我有一个 2D 闭合轮廓(一组 2D 点坐标)代表此图像中的对象:

我想把它转换成折线轮廓像:dot-line-space-dot-line-space,等等

有没有办法在 Matlab 中解决这个问题? 非常非常感谢

您可以先使用imfill填充对象,然后使用bwboundaries对其进行跟踪,然后使用plota given line style绘制结果。

% Load the image in and convert to binary
img = imread('http://i.stack.imgur.com/G4NLh.png');
img = img(:,:,1) > 170;

% Fill in the middle hole and compute the boundary
boundary = bwboundaries(imfill(img, 'holes'));

% Plot the boundary on a black background
plot(boundary{1}(:,2), boundary{1}(:,1), ...
            'LineStyle', '-.', ...
            'Marker', 'none')

axis image
axis ij

更新

哦...您已经获得了 x/y 分。那好吧!只需使用LineStyle属性的剧情即可完成你想要的