确定棋盘尺寸(以像素为单位)

时间:2012-09-16 03:46:46

标签: c opencv camera-calibration

与使用棋盘校准单个相机2D图像类似,我希望确定棋盘(或单个正方形)的宽度/高度(以像素为单位)。

我有一个垂直瞄准地面的相机,确保与下面的表面完全齐平。我正在使用相机来确定连续帧之间的转换(使用傅立叶相位相关成功实现),此时我的结果以像素为单位返回平移,但是我想使用类似于校准的技术,我将相机移动到棋盘在地面上是平的,自动确定棋盘的大小,以像素为单位,相对于我的图像高度和宽度。

知道棋盘的大小(以毫米为单位),然后我可以将像素单位转换为以毫米为单位的真实世界单位,即1像素将表示与地面以上相机高度成比例的距离。这将允许我将以像素为单位的平移转换为以毫米为单位的平移,每次更改相机的高度时都会重新校准。

实现这一目标的推荐方法是什么?当然它必须比单个相机2D校准更简单。

2 个答案:

答案 0 :(得分:1)

OpenCV可以通过cv::findChessboardCorners()为您提供棋盘角落的位置。

我不确定透视失真是否会影响您的计算,但如果棋盘在相机下面完全对齐,它应该可以工作。

答案 1 :(得分:0)

这只是一个想法,所以不要打我......但也许使用棋盘的自然对比?

“在某些时候,它会从亮像素切换到暗像素,这应该发生(不能记住棋盘上的列数)。”应该是一个可行的算法。