您的位置:首页 > 运维架构

OpenCV3.2.0 双目标定+立体匹配(官方自带例子的使用方法)

2017-11-30 10:59 357 查看
一、需要先找到官方标定程序

1.先到OpenCV源码目录下(..\opencv-3.2.0\samples\cpp)找到stereo_calib.cpp(这是利用张正友标定法的程序)



2.在vs中创建项目,然后添加c++源文件,再把上面stereo_calib.cpp文件中的内容拷贝到我们刚添加的文件中,如下图



3.编译一下看看有没有错误(VS+OpenCV配置好的话一般没错误)

4.把官方自带的28张标定图片以及stereo_calib.xml(这是一个包含需要标定的图片的列表)这个文件拷贝到VS工程目录中

4.1打开工程目录的方法如下图:



4.2自带标定图片以及stereo_calib.xml文件在同一个文件夹下位置如下图



把4.2中的文件拷贝到4.1的目录中

5.上面已经编译过了,直接运行就可以,这里运行的时候不需要任何参数(main()括号中的argv),因为我发现这个程序中用到OpenCV中的一个类cv::CommandLineParser为我们提供了一些默认参数,我们按默认参数跑就行main函数中有一个小小的地方需要修改如下图。



运行方法有两种二选一就行:方法一.VS中直接点击运行。方法二.5.2通过cmd控制台



总结:到这里标定成功,标定完后会发现VS工程目录下多了两个文件extrinsics.yml和intrinsics.yml接下来做立体匹配需要用。

二、需要先找到官方的立体匹配程序

1.需要找到自带例子程序的位置



2.同一中的第2步,新建一个新的VS个工程,然后添加一个c++文件,然后把stereo_match.cpp文件中的内容拷贝到新创的c++文件中即可。

3.随便拷贝上述28张图片中的任意一对图片如left01.jpg和right01.jpg到工程目录中(立体匹配用的两张图)。把extrinsics.yml和intrinsics.yml也拷贝到工程目录中。

4.标定中我们不需要修改agrv,但是立体匹配的时候需要做一些修改

即把main函数中的cv::CommandLineParse parser()括号中的参数做一些修改,修改结果如下图:



如果不做修改,那么需要在cmd控制台下运行这个程序,然后提供合适的agrv参数,不做修改直接在VS中运行是会一闪而过的。

5.直接在VS中点击运行即可。运行结果如下:



原文地址:http://blog.csdn.net/a864488081/article/details/78205519
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: