我是一名机器人工程师,对于计算机视觉或视觉伺服方面不是专家。这是我第一次使用摄像头。无论如何,我想获取与图像中特定像素相关的方向信息。
设置如下:我有一个分辨率为1040x776的相机,已经进行了校准。我的图像中有一些对象,我可以检测到并将其关联到图像中的某个点。像素用 u,v(我猜) 表示,因此这些点在 u轴(水平)上从0到1040,在v轴上从0到776。
假设 u,v = 0,0 是图像的中心(即使它位于左上角也没有问题),我想要的是从相机中心到上述像素的单位向量。例如,如果像素位于图像中心,则结果向量应为(1,0,0)。
我认为我已经在stackexchange上找到了答案,但我不确定是否是我需要的: OpenCV: Calculate angle between camera and pixel 步骤:
1 - 校准相机,获得相机矩阵K和畸变参数D。在OpenCV中,可以按照本教程所述进行操作。
2 - 去除感兴趣像素的非线性畸变。在OpenCV中,使用undistortPoints例程即可,不需要传递参数R和P。
3 - 通过将其在齐次坐标中的像素位置乘以相机矩阵的逆来将感兴趣的像素投影到射线(以相机3D坐标为单位向量),从而得到相应的方向向量。
你认为呢?
谢谢你的关注。
设置如下:我有一个分辨率为1040x776的相机,已经进行了校准。我的图像中有一些对象,我可以检测到并将其关联到图像中的某个点。像素用 u,v(我猜) 表示,因此这些点在 u轴(水平)上从0到1040,在v轴上从0到776。
假设 u,v = 0,0 是图像的中心(即使它位于左上角也没有问题),我想要的是从相机中心到上述像素的单位向量。例如,如果像素位于图像中心,则结果向量应为(1,0,0)。
我认为我已经在stackexchange上找到了答案,但我不确定是否是我需要的: OpenCV: Calculate angle between camera and pixel 步骤:
1 - 校准相机,获得相机矩阵K和畸变参数D。在OpenCV中,可以按照本教程所述进行操作。
2 - 去除感兴趣像素的非线性畸变。在OpenCV中,使用undistortPoints例程即可,不需要传递参数R和P。
3 - 通过将其在齐次坐标中的像素位置乘以相机矩阵的逆来将感兴趣的像素投影到射线(以相机3D坐标为单位向量),从而得到相应的方向向量。
你认为呢?
谢谢你的关注。