我需要使用OpenCV找到像素的世界坐标。 因此,当我在图像中拍摄像素(即左上角的像素时),我想知道该像素对应于图像平面上哪个3D世界空间坐标。 我知道单个像素对应于3D点的线,但我想要特定位于图像平面本身上的那个点。
这是OpenCV针孔模型的公式,我已经有了第一个(内参)和第二个(外参)矩阵。 我知道我有u和v,但我不知道如何从u和v得到正确的X,Y和Z坐标。
我已经尝试过:
- 我认为只需设置s为1,并通过添加1将[u v 1] ^ T制成齐次坐标,就可以将它乘以内参和外参,并通过添加以下行将其变成4x4矩阵: [0 0 0 1]。 然后将其求逆并与[u v 1 1] ^ T相乘以获取X,Y和Z。 但是,当我检查像这样计算的四个像素是否位于同一平面上(图像平面),结果是错误的。
那么,有什么想法吗?
这是OpenCV针孔模型的公式,我已经有了第一个(内参)和第二个(外参)矩阵。 我知道我有u和v,但我不知道如何从u和v得到正确的X,Y和Z坐标。
我已经尝试过:
- 我认为只需设置s为1,并通过添加1将[u v 1] ^ T制成齐次坐标,就可以将它乘以内参和外参,并通过添加以下行将其变成4x4矩阵: [0 0 0 1]。 然后将其求逆并与[u v 1 1] ^ T相乘以获取X,Y和Z。 但是,当我检查像这样计算的四个像素是否位于同一平面上(图像平面),结果是错误的。
那么,有什么想法吗?
s
,给出像素到世界坐标的转换。如果你创建一个描述你的三维世界平面的公式,你可以计算出击中平面的单个s
。 - Mickas
...我猜应该是[s*u,s*v,s,1]
,但我不确定;) - Micka