确定立体视觉摄像头的的焦距、图像中心、基线和视野

上次修订日期:2015 年 7 月 7 日

本文介绍了如何使用 API 函数调用和计算获取有关立体视觉摄像头焦距、图像中心、基线和视野的信息。

所有立体视觉摄像头均内嵌了标定文件。 您摄像头的焦距(像素为单位)、图像中心(也是像素为单位)和基线(米为单位)测量可以使用 Triclops 库函数确定:

triclopsGetFocalLength()
triclopsGetImageCenter()
triclopsGetBaseline()

焦距代表摄像头焦点到图像中心的距离。 焦距决定镜头视场角。 焦距越长,视场角越窄;焦距越短,视场角越大。

图像中心是图像中镜头的“光轴”与像平面的交点。 不是原始或矫正图像的中心,而是射影畸变的中心。 光轴垂直于像平面。 视差图像与右(参照)摄像头图像逐像素对齐。 因此,它与右侧图像共用光轴。

视野是镜头所看到的场景宽度与高度。

Triclops SDK 中的 printconfig 示例获取并打印当前已连接摄像头的基线(单位是厘米)和焦距。 您可以从程序 → Point Grey Research → Triclops Stereo Vision SDK → src → 示例 → 常用 → printconfig 访问示例。 所得值取决于完成立体处理的分辨率。 修改程序以获取并打印图像中心相对容易。 注意:焦距和图像中心仅适用于矫正图像,不适用于原始图像。

您可以用以下公式计算水平和垂直视野:

HFOV = 2 * arctan( w / 2f )
VFOV = 2 * arctan( h / 2f )

,其中 f 是焦距,w 是宽度(如 320),h 是高度(如 240)。

如果直接从摄像头标定 (.cal) 文件中读取焦距,则焦距列表中会有两个数字。 如果要计算上述公式的 f,请用列出的第一个数字(如 0.845263)乘以图像中的列数(如 320)。 这样就得出了焦距的像素值,该值要等于 triclopsGetFocalLength() 返回的值。