一种基于OpenCV的简易摄像机标定方法
- 格式:pdf
- 大小:268.86 KB
- 文档页数:4
一种基于OpenCV及CVUT的摄像机标定方法张立静;付宜利;冯美【期刊名称】《自动化与仪表》【年(卷),期】2011(26)12【摘要】该文以摄像机标定为研究对象,简单介绍了OpenCV及CVUT(computer vision utility tools),分析了计算机视觉函数库OpenCV中的摄像机模型,其中的非线性畸变考虑到了切向畸变和径向畸变.根据模型详细给出了标定过程,通过标定过程给出OpenCV及CVUT的标定算法,充分发挥了OpenCV的函数库和CVUT功能,从而实现了摄像机标定.该算法对于图像处理与计算机视觉方面的应用设计具有实用价值,并且可以缩短应用程序的开发周期,消除C语言中比较常见的内存泄露问题,具有良好的跨平台移植性,可满足视觉检测或其它计算机视觉系统的需要.%This paper researching on the camera calibration,have briefly introduced OpenCV and CVUT(computer vision utility tools). Then we analyzed the camera model in the vision function library OpenCV,the process which takes full account of the radial lens distortion and tangential distortion factors. What's more,we have figured out the calibration process and calibration algorithm. Therefore,the calibration based on OpenCV and CVUT could be achieved,which puts the function of OpenCV and CVUT libraries into full play. This kind of arithmetic had practical value on the application design of image processing and computer vision,and could short the development cycle of application program,eliminate the EMS memory leak that were very common in C language,and had a goodcrofts- platform portability to meet the visual inspection or other computer vision systems.【总页数】4页(P48-51)【作者】张立静;付宜利;冯美【作者单位】哈尔滨工业大学机电工程学院,哈尔滨150001;哈尔滨工业大学机电工程学院,哈尔滨150001;哈尔滨工业大学机电工程学院,哈尔滨150001【正文语种】中文【中图分类】TP39【相关文献】1.基于OpenCV的CCD摄像机标定方法 [J], 雷铭哲;孙少杰;陈晋良;陶磊;魏坤2.一种基于OpenCV的摄像机标定算法的研究与实现 [J], 孙昆;穆森;邱桂苹;赵倩3.一种基于OpenCV的简易摄像机标定方法 [J], 郭静;吴怀宇;杜钊君4.一种基于OpenCV的摄像机标定方法 [J], 田克微;张爱武;王少敏5.基于OpenCV的红外与可见光双摄像机标定方法研究 [J], 任贵文因版权原因,仅展示原文概要,查看原文内容请购买。
计算机视觉摄像机标定实验报告[实验名称]基于OpenCV的摄像机标定[实验项目]1、学会使用OpenCV2、利用OpenCV进行摄像机标定,编程实现,给出实验结果及其分析。
[实验仪器设备]电脑+Visual Studio 2010+openCV.2.4.8。
[实验原理]1、理论知识如图,(u、v)表示以像素为单位的图像坐标系的坐标,(X、Y)表示以mm为单位的图像坐标系的坐标,在X、Y坐标系中,原点O1定义在摄像机光轴与图像平面的交点,该点一般位于图像中心,但是由于制造原因,很多情况下会有偏移,若O1在U、V坐标系中坐标为(u0,v0),每一个像素在X轴与Y轴方向上的无力尺寸为dx、dy,则图像任意一个像素在两个坐标系下的坐标有如下关系:如图,Oc点为摄像机光心,Xc轴和Yc轴与图像的X轴与Y轴平行,Zc轴为摄像机光轴,它与图像平面垂直。
光轴与图像平面的交点,极为图像坐标系的原点,由点Oc与Xc、Yc、Zc轴组成的直角坐标系称为摄像机坐标系,OOc为摄像机焦距:由于摄像机可以安放在环境中任意位置,所以在环境中选择一个基准坐标系来描述摄像机位置,并用它描述环境中任何物体的位置,该坐标系为世界坐标系。
它有Xw、Yw和Zw轴组成,摄像机坐标系与世界坐标系之间的关系可以用旋转矩阵与平移向量t来描述。
总体来说,世界坐标系到图像坐标系的关系可总结如下:摄像头成像几何关系,其中Oc 点称为摄像头(透镜)的光心,Xc 轴和Yc 轴与图像的x轴和Y轴平行,Zc 轴为摄像头的光轴,它与图像平面垂直。
光轴与图像平面的交点O1 ,即为图像坐标系的原点。
由点Oc 与Xc 、Yc 、Zc 轴组成的坐标系称为摄像头坐标系,Oc O1 的距离为摄像头焦距,用f表示。
又称为线性摄像机模型,任何空间点M在图像中的投影位置m,为光心Oc与M的连线OcM与图像平面的交点。
此时有比例关系如下:将上面的世界坐标到摄像机坐标的转换代入,最后皆可以得到世界坐标系与摄像机坐标系之间的关系:alph=f/dx,beta=f/dy,分别代表了以X轴与Y轴方向上的像素为单位表示的等效焦距。
一种基于OpenCV的摄像机标定算法的研究与实现作者:孙昆穆森邱桂苹赵倩来源:《电子世界》2012年第14期【摘要】摄像机标定是计算机视觉中的一个重要问题。
本文介绍了标定的基本原理,详尽阐述了使用二维模板的标定算法,重点分析了如何借助开源软件OpenCV实现该算法。
实验结果显示,使用OpenCV中的相关函数,可以方便地进行数学计算,简单有效地完成摄像机标定。
【关键词】摄像机标定;内部参数;单应性矩阵;OpenCV1.引言计算机视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体。
而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。
摄像机标定是确定摄像机内外参数的一个过程,其中内参数的标定是指确定摄像机固有的、与位置参数无关的内部几何与光学参数,包括图像中心坐标(也称主点坐标)、图像纵横比、相机的有效焦距和透镜的畸变失真系数等;外参数的标定是确定摄像机坐标系相对某一世界坐标系的三维位置和方向关系。
目前,摄像机标定技术主要有两种实现方法:(1)基于标定物的方法:需要尺寸已知的标定参照物,通过建立标定物上三维坐标已知点与其图像点之间的对应,利用一定的算法获得摄像机的内外参数。
标定物可以是三维的,也可以是二维共面的。
三维标定物条件下,只需一幅图像就可以求出摄像机的全部内外参数。
但三维标定物的加工和维护比较困难。
二维共面标定物加工维护简单,但一幅图像不足以标出所有的摄像机参数,因此需要简化摄像机模型,或者从不同角度获取多幅图像来同时标出所有的参数。
当应用场合要求的精度很高而且摄像机的参数不经常变化时,这种标定法应为首选。
(2)自标定法:不需要标定物,仅依靠多幅图像对应点之间的关系直接进行标定。
利用了摄像机内部参数自身的约束,而与场景和摄像机运动无关。
该方法非常灵活,但不是很成熟,由于未知参数太多,很难得到稳定的结果。
opencv的相机标定方法
OpenCV提供了多种相机标定方法,其中最常用的是棋盘格标
定法。
下面是使用棋盘格标定相机的步骤:
1. 准备一副棋盘格图片,棋盘格的每个方格必须是完整的黑白交替的。
2. 使用摄像机拍摄多幅图片,确保棋盘格图片处于不同的位置和角度,同时保持棋盘格在整个图像中都可见。
3. 初始化标定板格点的三维坐标数组和图像中对应点的二维坐标数组。
4. 使用OpenCV的函数`findChessboardCorners()`在每个图像中
查找棋盘格的角点,并将其保存在图像对应的二维坐标数组中。
5. 使用OpenCV的函数`drawChessboardCorners()`在每个图像
上绘制出检测到的角点。
6. 使用OpenCV的函数`calibrateCamera()`计算相机的畸变系数和相机矩阵。
7. 使用OpenCV的函数`undistort()`去除图像的畸变。
8. 使用OpenCV的函数`imshow()`显示校正前后的图像进行对比。
9. 使用OpenCV的函数`getOptimalNewCameraMatrix()`获取校正后图像的新相机矩阵。
10. 使用OpenCV的函数`initUndistortRectifyMap()`获取校正后图像的映射矩阵。
11. 使用OpenCV的函数`remap()`将原始图像映射到校正后图像。
通过以上方法,可以完成相机的标定和校正,得到更准确的图像处理结果。
初学OpenCV之摄像机标定最近方向定下来是双目立体视觉,主要是做重建这块的研究。
大致过程是图像获取->摄像机标定->特征提取->匹配->三维重建,当然开始可以进行图像预处理,矫正,后期可以进行点云的进一步处理,如渲染表面使其更接近于现实物体。
图像获取相对来说比较简单,用相机拍摄目标物(大型场景或特定小型的室内物体)。
但有两点需要注意:1、双目重建所需的图像一般为两张,角度相差不应过大,否则公共部分太少以至于重建效果不佳;整个过程简便,成本也不高,但缺陷是只有两张图像的点云所表示的物体信息不会很全面;2、标定所需的图像又是另外拍摄的,用张正友标定法的话,把印有黑白棋盘格的图像粘至硬纸板上,然后左右摄像机各自进行拍摄,理论上获得角度(图像)越多,最终标定结果越精确;标定板见下图:这里主要结合OpenCV对左右摄像机标定做一个简单的介绍,望朋友们指正,一起交流、进步。
摄像机的标定问题是机器视觉领域的入门问题,可以分为传统的摄像机定标方法和摄像机自定标方法。
定标的方法有很多中常见的有:Tsai(传统)和张正友(介于传统和自定标)等,摄像机成像模型和四个坐标系(通用原理)。
摄像机模型采用经典的小孔模型,如图中Oc(光心),像面π表示的是视野平面,其到光心的距离为f(镜头焦距)。
四个坐标系分别为:世界坐标系(Ow),摄像机坐标系(Oc),图像物理坐标系(O1,单位mm),图像像素坐标系(O,位于视野平面的左上角,单位pix)。
空间某点P到其像点p的坐标转换过程主要是通过这四套坐标系的三次转换实现的,首先将世界坐标系进行平移和转换得到摄像机坐标系,然后根据三角几何变换得到图像物理坐标系,最后根据像素和公制单位的比率得到图像像素坐标系。
(实际的应用过程是这个的逆过程,即由像素长度获知实际的长度)。
ps:通过摄像头的标定,可以得到视野平面上的mm/pix分辨率,对于视野平面以外的物体还是需要通过坐标转换得到视野平面上。
基于OpenCV的摄像机标定研究摘要:根据摄像机标定原理,实现了vc 2010环境下基于opencv 的摄像机标定系统。
该系统以棋盘格标定板图像作为输入,计算出了摄像机的各内外参数及畸变系数。
通过图像矫正实验证明了系统的有效性。
关键词:摄像机标定;棋盘格;opencv;图像矫正中图分类号:tp391.41 文献标识码:a文章编号:1007-9599 (2013) 05-0000-021引言视觉测量、三维重建等是计算机视觉应用中较为重要的研究领域。
在这些研究中,都需要确定视觉图像中的点与现实世界中对应点的几何位置关系。
我们常用的图像,由摄像机拍摄得到,因此,确定这种关系,就要依靠成像系统即摄像机的几何模型。
几何模型的参数就是摄像机的参数。
但这些参数不能够直接获取,而是要利用摄像机拍摄的图像,通过实验来获取。
获取这些参数的过程我们称之为摄像机标定。
摄像机标定是计算机视觉应用中的关键技术。
摄像机标定精度直接影响视觉测量精度,也是做好立体图像匹配与三维重建工作的基础[1]。
摄像机标定方法有3类:基于标定物的方法,自标定方法和基于主动视觉的标定方法[2,3]。
其中,使用平面标定物的标定方法[4],因其标定物制作简单、标定方法灵活而广泛使用。
本文详细介绍了摄像机标定原理,及在vc++ 2010环境下,利用opencv 2.4.4实现摄像机标定的方法和步骤,并通过实验验证了其有效性。
2标定原理摄像机标定首先需要利用合适的数学工具来描述和表达空间中的点与图像中对应点之间的关系。
这个工具就是几何模型,它涉及到摄像机的光学参数如图像中心、镜头焦距和镜头畸变等,还涉及到摄像机坐标系与世界坐标系的相对位置和方位等。
常用的针孔模型是一种理想的成像模型,没有考虑摄像机透镜的厚度及畸变对成像的影响,不能很好地反映实际情况。
opencv中的标定算法,其摄像机模型以针孔模型为基础,同时考虑了透镜的径向畸变和切向畸变,引入了径向畸变和切向畸变两个参数。