【发布时间】:2022-01-22 07:46:02
【问题描述】:
我正在使用 Turtlebots 和 ROS,并使用相机来查找相机中标记的像素位置。我已经从模拟转移到物理系统。我遇到的问题是我的物理系统中的像素位置与物理系统中的像素位置不匹配,尽管标记和其他所有东西都与模拟中的位置相同。当相机和标记之间的高度、标记位置以及标记和相机之间的距离在物理系统和模拟系统中都相同时,垂直像素位置发生了大约 40 个像素的偏移。模拟系统不需要相机标定矩阵,假设是理想的。
我使用的分辨率是 640x480,所以中心像素应该是 cx=320 和 cy=240,但是我在物理系统中使用的相机校准矩阵中注意到 cx 在 318 左右,这是相当准确的,但 cy 在 202 左右,与应有的值相差甚远。这也让我认为垂直方向上像素位置的偏移与我得到的错误像素数量大致相同。
那么假设校准中中心像素的误差可能导致像素位置的误差是否正确?
我一直在尝试校准 USB 摄像头(我认为是 Logitech C920),并且我一直在使用 http://wiki.ros.org/camera_calibration 此处找到的 camera_calibrator ROS 软件包来校准摄像头。我认为相机校准没有那么好,因为我在 cx 或 cy 中总是有一个很大的错误。这是校准矩阵。
First calibration matrix, used 15x10 vertices with size 0.25
Recalibrated but did not actually use this yet, calibrated with 8x6 size 0.25
Same as previous, some difference between the two
棋盘在 A4 纸上。
提前致谢。
【问题讨论】:
-
小注:如果一个像素的中心坐标是整数,cx和cy需要是(width-1)/2等等,即319.5和239.5。没有人注意到...直到它重要。它很少重要。 - 相机校准很棘手,大多数人都做错了。使用 charuco 并且永远不要将电路板与图像平面平行。总是倾斜它。想象一下,如果它是一面镜子,请避免向相机展示它自己的反射。 -- 没有文字截图!将文本复制到您的问题中。
-
是的,抱歉,我提出问题时没有可用的文本。当我有可用的文本时,会将文本复制到问题中。
标签: opencv ros camera-calibration