【发布时间】:2019-09-15 23:22:02
【问题描述】:
我是一名机器人工程师,不是计算机视觉或视觉伺服方面的专家。这是我第一次使用相机的经历。
无论如何,我想获得与图像中某个像素相关联的方位信息。
设置如下。我有一台经过校准的分辨率为 1040x776 的相机。我的图像中有一些对象,我可以检测到这些对象并将其关联到图像中的某个点。像素用 u,v 表示(我猜),所以这些点在 u 轴(水平)上介于 0 和 1040 之间,在 轴上介于 0 和 776 之间>v 轴。
假设 u,v = 0,0 位于图像的中心(即使它位于左上角。但这不是问题)。
我想要的是一个从相机中心到上述像素的单位向量。因此,例如,如果像素位于图像的中心,则结果向量应为 (1,0,0)。
我想我已经在 stackexchange 上找到了回复,但我不是 100% 确定我需要什么: OpenCV: Calculate angle between camera and pixel
食谱:
1 - 校准相机,获取相机矩阵 K 和畸变参数 D。在 OpenCV 中,按照本教程中的说明完成。
2 - 从感兴趣的像素位置移除非线性失真。在 OpenCV 中使用 undistortPoints 例程完成,无需传递参数 R 和 P。
3 - 通过将它们在齐次坐标中的像素位置乘以相机矩阵的逆矩阵,将感兴趣的像素反向投影到相机 3D 坐标中的射线(尾部位于相机中心的单位向量)中。
你怎么看?
提前感谢您的关注。
【问题讨论】:
-
两年过去了,您最终找到解决方案了吗?
标签: c++ opencv camera direction