在Matlab中使用整个图像上的两个点绘制线条

时间:2014-01-15 14:07:24

标签: image matlab line

我需要使用Matlab代码在图像上使用两个点绘制一条线,而不仅仅是放在整个图像上的那些点之间,然后检查像素是否在图像的右侧,然后使其值为0 =黑色,否则保持不变 我不是matlab的专业人士,需要这个项目。 enter image description here

1 个答案:

答案 0 :(得分:1)

在SO上的其他问题中已经涵盖了除注释线以外的图像上的线条,请参见此处的示例:How to draw a line on an image in matlab?

如果你想走这条路,我会在黑色图像上绘制线条并从中生成二进制蒙版。然后按照我在下面提到的那样应用面膜。

现在,如果您正在寻找快速解决方案,请注意以下事项:

BW=roipoly(i1);

然后绘制一个包围图像左侧部分的多边形并停在该线上。你会得到类似的东西:

Binary mask

现在清理一下

Mask=imdilate(BW, [1 1 1 1 1; 1 1 1 1 1; 1 1 1 1 1]);

将蒙版应用于RGB图像的3个图层:

Masked(:,:,1)=i1(:,:,1).*Mask;
Masked(:,:,2)=i1(:,:,2).*Mask;
Masked(:,:,3)=i1(:,:,3).*Mask;
imshow(Masked);

结果:

masked

相关问题