如何在matlab中从点坐标绘制轮廓

时间:2014-02-14 02:22:14

标签: matlab

我有一个图像和四个点(x1,y1),(x2,y2),(x3,y3),(x4,y4)。它们是图像的像素坐标。我想用Matlab从图像周围的点生成一个轮廓。我尝试制作它,但它不准确。哪个更好实现?

X=[x1 x2 x3 x4];
Y=[y1 y2 y3 y4];
BW1 = roipoly(I,X,Y); % I is an image
figure, 
imagesc(uint8(I),[0 255]),colormap(gray);axis equal;axis off;
hold on,[c1,h1] = contour(BW1,[0 0],'r','linewidth',1.4); hold off

1 个答案:

答案 0 :(得分:0)

也许这就是你要做的事情(我猜这里......):

X=[x1 x2 x3 x4];
Y=[y1 y2 y3 y4];
BW1 = roipoly(I,X,Y); % I is an image
figure
imagesc(uint8(I),[0 255])
colormap(gray);
axis equal;axis off;
hold on;
plot([X X(1)], [Y Y(1)], 'r', 'linewidth', 1.4); % <<<<< using plot instead of contour

或者你可能需要

[c1,h1] = contour(BW1,[0 0] + 0.5,'r','linewidth',1.4); hold off

第二种情况使用的事实是,根据需要,0.5的轮廓将位于0和1之间的边界上。但我怀疑你的BW1图片会覆盖原始图片...抱歉现在无法测试,你留下了很多猜测。