我有一组来自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点
答案 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)])
。这可以改进,但我需要知道你如何存储积分。