如何在MATLAB中绘制视频帧上的直线
我试图沿着黑色的木棍从边缘到运动部件的绿点画一条细细的红线,这是我以前在视频中发现的。我正在逐帧处理视频 我可以找到两个点(起点和终点),但我被困在如何使这两个点和它们之间的点呈红色线性 例如 对于图片中的当前帧,从左上角(0,0)开始,顶点坐标向下45,向右237,而绿点坐标向下231,向右238 所以我需要画一条从(237,45)到(231238)的线 我如何使中点变为绿色是在替换当前帧矩阵中的像素值。我正试图采取类似的方法,但可能有更有效的方法如何在MATLAB中绘制视频帧上的直线,matlab,computer-vision,matlab-cvst,Matlab,Computer Vision,Matlab Cvst,我试图沿着黑色的木棍从边缘到运动部件的绿点画一条细细的红线,这是我以前在视频中发现的。我正在逐帧处理视频 我可以找到两个点(起点和终点),但我被困在如何使这两个点和它们之间的点呈红色线性 例如 对于图片中的当前帧,从左上角(0,0)开始,顶点坐标向下45,向右237,而绿点坐标向下231,向右238 所以我需要画一条从(237,45)到(231238)的线 我如何使中点变为绿色是在替换当前帧矩阵中的像素值。我正试图采取类似的方法,但可能有更有效的方法 imshow(image_name); ho
imshow(image_name);
hold on
[n, m] = imsize(image_name);
plot([231 237], [n-238, n-45], 'r');
这应使用标准打印工具直接打印到图像上。您需要使用n值,因为图像使用左上角作为(0,0),而绘图使用左下角。plot命令只打印一个由2个点组成的数组,它将自动与一条线连接。您可以直接编辑像素,但找到要编辑的像素并保持其整洁确实很麻烦不幸的是,您无法在
vision.VideoPlayer上使用handle graphics命令。但是,有一个函数insertShape
,它允许您在显示图像之前直接绘制图像。您可以实现Bresenham的直线算法。我通过阅读Adafruit GFX库中的注释了解到,是否可以使用line
命令在该图形中绘制?R2013中提出了insertShape函数。我使用2012a。在这种情况下,您可以使用vision.ShapeInserter
object。这是一个很好的建议。但我想将像素值更改为红色[1 0 0],而不是添加额外的形状。Yuo可以使用类似于a=getframe()
的方法获取绘图帧,并使用a.cdata将其插入图像中