Opencv 圆形标定板相机标定

        首先,需要拍摄一定数量的标定图,尽量从各个角度拍摄,尽可能遍布相机图像画面的所有角落,所用标定板为圆点标定板,我拍摄的图片数量是17幅,分别命名为“image1”到“image17”。

         得到标定图之后可以使用opencv自带例程中的imagelist_creator.cpp和calibration.cpp进行标定;其所在位置如下图:

Opencv 圆形标定板相机标定_第1张图片

第一步编译imagelist_creator.cpp;

       imagelist_creator.cpp:是通过用户输入图像名称编写图像列表的程序;

      创建一个新的工程imageListCreator,并添加imagelist_creator.cpp,配置好OpenCV环境,我的是Debug x64,在工程imageListCreator目录(...\imageListCreator\x64\Debug)下生成imageListCreator.exe文件(**.exe文件可以任意命名,我此处命名为imageListCreator.exe)。

Opencv 圆形标定板相机标定_第2张图片

 按win+R打开运行,输入cmd打开命令提示符;

Opencv 圆形标定板相机标定_第3张图片

找到...\imageListCreator\x64\Debug文件夹下;

Opencv 圆形标定板相机标定_第4张图片

 使用cmd命令行运行**.exe,参数格式为:**.exe  image_list.xml image1.bmp image2.bmp image3.bmp image4.bmp image5.bmp image6.bmp image7.bmp image8.bmp image9.bmp image10.bmp image11.bmp image12.bmp image13.bmp image14.bmp image15.bmp image16.bmp image17.bmp;

Opencv 圆形标定板相机标定_第5张图片

在...\imageListCreator\x64\Debug文件夹下,生成一个新的文件imagelist.xml 

Opencv 圆形标定板相机标定_第6张图片

第二步移除imagelist_creator.cpp,添加calibration.cpp得到**.exe,

Opencv 圆形标定板相机标定_第7张图片

 ps:一开始在找calibration.exe。但怎么都找不到,后来突然醒悟我这个工程名是imageListCreator啊,所以生成的仍然是imageListCreator.exe ,如下图所示:

 Opencv 圆形标定板相机标定_第8张图片

在命令提示符中使用cmd命令运行**.exe  参数格式为:**.exe  -w=7 -h=5 -pt=circles -o=camera.yml -op -oe -su image_list.xml

    Opencv 圆形标定板相机标定_第9张图片  

标定的结果就在camera.yml中。

   参数解析:

-w表示横向特征点的个数    -h表示纵向特征点的个数    -pt表示类型,可以是棋盘或者圆点   -o表示输出。
Opencv 圆形标定板相机标定_第10张图片

你可能感兴趣的:(计算机视觉,Opencv,圆形标定板,相机标定)