在matlab中如何在图像上画线?
我有两点要说:在matlab中如何在图像上画线?,matlab,line,draw,Matlab,Line,Draw,我有两点要说: P(x,y)[点位于图像顶部] P'(x',y')[点位于图像底部] 现在我想在这两点之间画一条线……这条线应该出现在图像上,意味着应该是可见的 如何做到这一点 在图像上画线的最简单方法是使用 如果您想要不同的颜色,请将字母更改为任何一个rgbcmykw,或使用RGB三元组(红色是[1 0])。查看以获取更多格式选项。您可以使用访问中的技术下载并与结合使用。或者仅仅使用他的技术。无论哪种方式都有效。如下所示: load clown image(X) colormap(map)
- P(x,y)[点位于图像顶部]
- P'(x',y')[点位于图像底部]
如何做到这一点 在图像上画线的最简单方法是使用
如果您想要不同的颜色,请将字母更改为任何一个
rgbcmykw
,或使用RGB三元组(红色是[1 0]
)。查看以获取更多格式选项。您可以使用访问中的技术下载并与结合使用。或者仅仅使用他的技术。无论哪种方式都有效。如下所示:
load clown
image(X)
colormap(map)
c = size(X,2)
mid = round(c/2)
X(:,mid) = 1
image(X)
figure;
hold on;
imagesc(img);
line([x1,x2],[y1,y2],'Color','r','LineWidth',2)
hold off
其中y是图像中的“向下”方向,x是图像中的“向右”方向。根据需要更改颜色和宽度以使其可见 如果您有计算机视觉工具箱。您可以简单地使用shapeInserter
退房
要指定行,必须使用下面的行。否则,您可能会得到一个矩形
例如:
%draw a line from point (100,100) to (200,200) on an image saved as nextFrame
line = int32([100 100 200 200]);
shapeInserter = vision.ShapeInserter('Shape', 'Lines');
nextFrame = step(shapeInserter, nextFrame, line);
查看属性以查看可以编辑的内容。从R2014a版本开始,您可以使用insertShape,如下所示:
img=insertShape(img,'Line',[x1 y1 x2 y2],'LineWidth',2,'Color','blue')代码>
也可以使用同一命令绘制多条线,但x1、x2、y2、y3必须是列向量,每行代表一条新线
insertShape还允许您绘制矩形、圆形和多边形。我相信您的问题以前已经讨论过:,,它几乎是完全重复的,但不完全相同。请查看以下两个链接:您提供的此链接仅适用于二值图像…而我的图像不是二值图像。其余的链接不是我用的。所以我需要一些不同的东西。如果它是彩色图像,你应该使用X(:,mid,:)=[1]代码>。这是一条垂直线。坡度是无限的。沿直线以背景图像颜色的相反颜色(RGB)绘制一条线很容易(不难),但更有趣……chee:a)这是一个不同的问题,b)使用点坡度公式绘制一条线。这只有在拥有计算机视觉工具箱的情况下才有效。你能推荐一种不用它的方法吗?如何使用虚线?
%draw a line from point (100,100) to (200,200) on an image saved as nextFrame
line = int32([100 100 200 200]);
shapeInserter = vision.ShapeInserter('Shape', 'Lines');
nextFrame = step(shapeInserter, nextFrame, line);