如何使用相机校准矩阵计算一定距离处图像的每像素毫米数?

How to calculate mm per pixel of an image at a certain distance using camera calibration matrix?

我在这里看到了答案:

  1. How can I get pixel size in millimetres using camera calibration with checkerboard images in Matlab?

但无人接听。

我有一个固定的相机和一个距离相机一定 x 距离的物体。我在这个距离 x 处放置一个棋盘格(每平方 y 毫米)并校准相机以获得相机校准矩阵。我如何使用此矩阵和已知距离 x 为位于距离 x 处的物体的任何图像找到每个像素的毫米数?

作为后续行动,物体尺寸增加使得 x 减小(物体表面与相机之间的距离)以提供 x',我们是否需要针对该新距离重新校准相机或我们能否以某种方式适应 x' 以仍然获得每个像素的准确毫米数?

给定相机矩阵的距离(参考物体的)和焦距(像素),这只是一点数学。

如果你想知道5米处一毫米的长度,你的焦距是1400像素,计算

1400 pixels * (1 mm / 5 m) = 0.28 pixels

所以在 5 米处,每毫米有 0.28 个像素。