OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 25157|回复: 11

关于相机标定,像素坐标到世界坐标转换的问题

[复制链接]
发表于 2016-11-1 11:15:36 | 显示全部楼层 |阅读模式
本帖最后由 rezin 于 2016-11-1 11:17 编辑

大家好!我最近用opencv做相机标定。通过调用cvCalibrateCamera2等函数已经获得了相机内外参数,也知道通过cvInitUndistortMap和cvRemap来矫正图片(消除畸变)。但是接下来的校正图片、获得世界坐标以及测量距离就有很多疑问了,具体如下:
1、计算内外参数的时候没有用到棋盘格尺寸,比如我打印的棋盘单元格边长是10mm,这个数据怎么体现到内外参数里面去?还是说后面转换世界坐标的时候再来使用?
2、怎么利用相机外参把图像变换到垂直于相机光轴的状态,也就是校正图片?
3、相机内外参已知的情况下,从原始图像上取得两个像素坐标p1(r1,c1)和p2(r2,c2),如何求这两点的世界坐标距离?
希望已经做过相机标定的朋友来指点一下,不胜感激!正在做相机标定的朋友来一起讨论讨论,共同进步~~file:///C:\Users\wwj\Documents\Tencent Files\442906621\Image\Group\{T~Q7GF0QE3W@5X%(ZOLSAD.png

回复

使用道具 举报

发表于 2016-11-1 14:40:05 | 显示全部楼层
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜索下
3) 一个相机不能从其图像上就三维坐标的,三维投影到二维是唯一的,二维对应三维是一条射线啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-2 10:03:08 | 显示全部楼层
piaobuliao 发表于 2016-11-1 14:40
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜 ...

谢谢你的回答!我好像前进了一点了:
1)cvCalibrateCamera2的参数有个object_points,难道这就是世界坐标?书上的例子是这样写的,
CV_MAT_ELEM(*object_points, float, i, 0) = j/board_w;
CV_MAT_ELEM(*object_points, float, i, 1) = j%board_w;
CV_MAT_ELEM(*object_points, float, i, 2) = 0.0f;
我应该把等式后面的值改成世界坐标吧?
2)矫正是用cvInitUndistortMap和cvRemap吧?这个是消除畸变的。但是校正(转换到垂直于相机光轴的姿态)用什么函数呢?
3)单目相机是可以做测量的,我看到康耐视和halcon都做到了。姿态确定以后,用内外参是可以算出世界距离的,只是我还没有弄明白其中的细节。希望大家多讨论。
回复 支持 反对

使用道具 举报

发表于 2017-2-10 08:45:09 | 显示全部楼层
hello, 我也在做这块。看到消息的话加我qq1179843,一起研究。谢谢。
回复 支持 反对

使用道具 举报

发表于 2017-2-19 19:43:16 | 显示全部楼层
wins 发表于 2017-2-10 08:45
hello, 我也在做这块。看到消息的话加我qq1179843,一起研究。谢谢。

我是新手  希望指教
回复 支持 反对

使用道具 举报

发表于 2017-2-28 10:08:58 | 显示全部楼层
貌似要给出你的拍照高度的,即相机到被拍物体之间的距离,这样就可转换了,不过不知道cv是否提供了这个函数
回复 支持 反对

使用道具 举报

发表于 2017-3-13 08:36:03 | 显示全部楼层
piaobuliao 发表于 2016-11-1 14:40
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜 ...

我也是新手  希望一起交流吧
回复 支持 反对

使用道具 举报

发表于 2018-3-29 22:41:52 | 显示全部楼层
1234567890
回复 支持 反对

使用道具 举报

发表于 2018-3-30 13:10:57 | 显示全部楼层
标定的作用其一就是为了求取畸变系数(因为经过镜头等成像后,或多或少都有畸变),其二是为了得到空间坐标系和图像坐标系的对应关系
回复 支持 反对

使用道具 举报

发表于 2018-4-12 14:18:05 | 显示全部楼层
你知道了相机外参和内参后,那么把世界坐标转成相机坐标,有参数有公式,应该能求出来;再把相机坐标转成图像坐标,有参数有公式,应该能求出来。一张图片对应世界坐标的图像坐标你知道了,那么第二张图片的坐标你也知道了,那两个图片的图像坐标点,你也知道了,通过两点计算距离和角度,你也应该能求出来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-5-6 01:10 , Processed in 0.009994 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表