我有一个图像和四个点(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
答案 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
图片会覆盖原始图片...抱歉现在无法测试,你留下了很多猜测。