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

C 以像素为单位确定棋盘尺寸,c,opencv,camera-calibration,C,Opencv,Camera Calibration,与使用棋盘校准单摄像机2D图像类似,我希望以像素为单位确定棋盘(或单个正方形)的宽度/高度 我有一个垂直对准地面的摄像头,确保与地面完全平齐。我正在使用相机确定连续帧之间的平移(使用傅里叶相位相关成功实现),此时,我的结果返回以像素为单位的平移,但我希望使用类似于校准的技术,将相机移动到平坦地面上的棋盘上,自动确定棋盘的大小(以像素为单位),相对于我的图像高度和宽度 知道棋盘的大小(以毫米为单位),我就可以把一个像素单位转换成一个真实世界的单位(以毫米为单位),也就是说,一个像素代表一个与相机离

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

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

知道棋盘的大小(以毫米为单位),我就可以把一个像素单位转换成一个真实世界的单位(以毫米为单位),也就是说,一个像素代表一个与相机离地高度成比例的距离。这将允许我将以像素为单位的平移转换为以毫米为单位的平移,并在每次更改相机高度时重新校准


实现这一目标的推荐方法是什么?当然,它一定比单摄像机2D校准更简单。

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


“在某一点上,它将从亮像素切换到暗像素,并且应该发生(不记得棋盘上的列数)次。”这应该是一个可行的算法。

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


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

OpenCV可以为您提供棋盘角的位置


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

OpenCV可以用相机显示棋盘角的位置


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

啊,谢谢,我会尝试一下。角点的输出阵列,这是像素位置(x,y)吗?在棋盘最外边缘,找到四个角基本上是完美的,使用棋盘角的坐标来确定每个角之间的距离(以像素为单位)。因此,知道角点之间以毫米为单位的距离可以将我以像素为单位测量的平移转换为以毫米为单位的真实平移。同时进行检查以确保每个角点之间以像素为单位的距离相对相等,为了确保棋盘与摄像机完全平齐以进行校准,OpenCV非常棒。OpenCV还有一个简单的Python包装器,它大大简化了整个API:啊,谢谢,我要试一试。角点的输出阵列,这是像素位置(x,y)吗?在棋盘最外边缘,找到四个角基本上是完美的,使用棋盘角的坐标来确定每个角之间的距离(以像素为单位)。因此,知道角点之间以毫米为单位的距离可以将我以像素为单位测量的平移转换为以毫米为单位的真实平移。同时进行检查以确保每个角点之间以像素为单位的距离相对相等,为了确保棋盘与摄像机完全平齐以进行校准,OpenCV非常棒。OpenCV还有一个简单的Python包装器,它大大简化了整个API: