2017-04-05 53 views
0

我使用OpenCV从一个平面计算单应投影,让我们说平面1到另一个平面,称为CenitalView。计算平行平面单应

单应矩阵(H1)通过在Plane1和CenitalView中选择一些点来计算。

仅仅通过获得这个信息,就有可能获得第二个单应矩阵(H2),它将平行平面与Plane1和相同的CenitalView相关联?

恢复:

平面1 - > H1 - > CenitalView
平面2(//基准面1) - > H2? - > CenitalView

回答

0

您需要知道Plane2中的原点(0,0)和x轴和y轴。不然你不能。

假设你身边平面2的正常verctor旋转平面2,你会得到Plane3,Plane4,....

所有这些飞机都基准面1的平行平面。很显然,他们对Cenital View有不同的单应矩阵。

+0

Plane1和Plane2只会在z轴上有所不同。飞机之间只有距离d。这就是为什么我问这两个矩阵之间是否有任何关系,因为它们都与平行平面有关的CenitalView平面 – Alex

+0

已知距离d?相机内在知识是否已知? – Micka

+0

d和相机本身都是已知的。 – Alex

1

如果知道plane1和plane2之间的单应性关系,这是可能的。

平面1 - > H1 - > CenitalView

若平面1 - > HP - >平面2然后 平面2 - > HP^-1 * H1 - > CenitalView

所以只知道飞机1和平面2并行是不够的,afaik。

+0

谢谢!这可能是一种方法。 – Alex

+0

嗨Micka,如果我知道它们是平行的,它们之间的真实世界距离以及相机的校准参数,请给我任何关于如何计算平面1和平面2之间的单应性的线索?谢谢。 – Jackypengyu

+0

@Jackypengyu您可以根据已知参数创建3D平面。然后通过任何像素从您的相机中心拍摄照片。这条射线将在一些坐标中撞击plane1和plane2。做到这一点为4点,你应该能够计算这些飞机之间的单应性。 – Micka