测试环境
OpenCV版本:OpenCV342
VS版本:VS2015
操作系统:Windows10
代码为OpenCV自带的Demo,需要在命令行界面输入命令。
测试准备
OpenCV自带相机标定Demo:calibration.cpp和calibration_artificial.cpp,这两个cpp文件都位于opencv\sources\samples目录下的cpp文件夹中,官方自带的定标图片位于opencv\sources\samples目录下data文件夹中,一共28张,left和right各14张。
calibration.cpp 是通过用户输入可选参数进行摄像机标定的程序。
calibration_artificial.cpp 是程序模拟模拟摄像机标定的过程,即程序创建棋盘然后自主标定。
测试步骤
1、要使用官方Demo,需要先使用imagelist_creator.cpp生成图像列表 。打开VIsual Studio 2015,新建一个空项目,然后把imagelist_creator.cpp添加到项目中,在opencv\sources\samples目录下的cpp文件夹中找到imagelist_creator.cpp,编译运行代码,生成可执行文件exe。
2、同时按WIN+R,输入cmd,打开命令行界面,进入exe所在的目录,输入以下命令,将图像文件名写入yaml文件中,系统会在exe所在的目录下自动生成imagelist.yaml文件。
opencv_相机标定 imagelist.yaml left01.jpg left02.jpg left03.jpg left04.jpg left05.jpg left06.jpg left07.jpg left08.jpg left09.jpg left010.jpg left11.jpg left12.jpg left13.jpg left14.jpg right01.jpg right02.jpg right03.jpg right04.jpg right05.jpg right06.jpg right07.jpg right08.jpg right09.jpg right10.jpg right11.jpg right12.jpg right13.jpg right14.jpg
imagelist.yaml
3、相机标定。图像列表文件有了,就可以开始相机标定了。同样是打开VIsual Studio 2015,新建一个空项目,然后把calibration.cpp添加到项目中,在opencv\sources\samples目录下的cpp文件夹中找到calibration.cpp,编译运行代码,生成可执行文件exe,然后把imagelist.yaml和28张棋盘格图片跟可执行文件exe放在一起。同时按WIN+R,输入cmd,打开命令行界面,进入exe所在的目录,输入以下命令,开始检测棋盘格的交点,系统会自动生成out_camera_data.yml存储着相机标定参数。
opencv_相机标定2 -w=6 -h=9 -s=0.025 -op -oe imagelist.yaml
效果图