我需要使用Matlab代码在图像上使用两个点绘制一条线,而不仅仅是放在整个图像上的那些点之间,然后检查像素是否在图像的右侧,然后使其值为0 =黑色,否则保持不变 我不是matlab的专业人士,需要这个项目。
答案 0 :(得分:1)
在SO上的其他问题中已经涵盖了除注释线以外的图像上的线条,请参见此处的示例:How to draw a line on an image in matlab?
如果你想走这条路,我会在黑色图像上绘制线条并从中生成二进制蒙版。然后按照我在下面提到的那样应用面膜。
现在,如果您正在寻找快速解决方案,请注意以下事项:
BW=roipoly(i1);
然后绘制一个包围图像左侧部分的多边形并停在该线上。你会得到类似的东西:
现在清理一下
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);
结果: