在相机校准(openCV)中找到固有参数后,我是否需要转换它们

unguejic  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(110)

我正在建造一个机器人,它需要使用单目摄像机来知道自己的轨迹。
我已经使用openCV校准了我的相机,并接收了它的内在参数。我已经遵循了this tutorial
有一件事我不明白的是他的单位,他是如何设法达到米?
我看过他的代码here,与单位转换无关。他声称要把他的单位转换成米。
我重写了大部分代码,我所有的情节都很迷失方向,当我测试它走了1米的时候,它可以说我走了8米。
我已经从校准中获得了以像素为单位的固有参数,我从raspberry pi cam site中找到了以mm为单位的焦距和以微米为单位的像素大小。
我想我需要用这两个参数把我的内在参数转换成米。在任何地方都找不到关于这个的文档。这样能解决我的问题吗?

kzipqqlq

kzipqqlq1#

distance (in meters) = (focal length (in mm) * object size (in pixels)) / (object size (in pixels) * pixel size (in um))

例如,如果对象的宽度为50像素,相机的焦距为5 mm,相机的像素大小为0.0026 mm(2.6 um),则可以按如下方式计算对象的物理宽度:(五 * 五十)/(五十 * 二点六 * 十^-六)=零点九六米
请记住,此公式假定相机相对于对象没有倾斜或旋转,并且还假定对象与相机之间的距离固定。如果不满足这些条件中的任何一个,则需要进行额外的计算。
此链接对您也很有用:https://www.scantips.com/lights/subjectdistance.html

相关问题