Matlab将图像分成一个和绘制线

时间:2012-11-03 13:06:33

标签: matlab plot line

我有一组来自Image 1,I1的点(x1,y1),以及来自Image 2,I2的另一组点(x2,y2)。
我想首先通过newI = [I1 I2]%两个图像来连接两个图像 然后,在新图像上,我想从(x1,y1)到(x2,y2)绘制点。

问题是一组点是基于其原始图像而不是相邻图像 那么,我如何将(x1,y1)和(x2,y2)中的点转换为新图像上的点?

然后,我如何在这些点之间画线。我不太确定如何使用matlab图

即(x11,y11) - > (x21,y21)一直到(x1i,y1i) - > (x2i,y2i)ith点

1 个答案:

答案 0 :(得分:1)

如果我理解正确(x1, y1)是图片I1上的点数索引。 Matlab以相同的顺序表示图像像素。因此,左侧图片x1和顶部y1的点位于索引(x1, y1)

现在,当您按[I1 I2]加入图像时,它与将第二张图像定位到第一张图像的右侧相同。这将第二个图像转换为第一个图像的宽度,即第一个图像的列数,可以通过size(I1,2)访问。

为了解释这种转变,您需要为第二张图像添加适当的移位。

(x2, y2) --> (( x2 + size(I1,2) ), y2 )

注意我们不需要移动y2,因为图像的高度相同。 此外,如果您有多个需要绘制的点,建议将图像尺寸保存在单独的变量中。

我猜您使用符号(x11, y11)(x21, y21)来引用相邻图片上的点(x1, y1)(x2, y2)

要从(x1, y1)(x2, y2)画一条线,假设为a1 = [x1, y1]a2 = [x2, y2],那么您可以说plot([a1(1), a2(1)], [a1(2), a2(2)])。这可以改进,但我需要知道你如何存储积分。