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

来源:互联网 发布:淘宝店铺无线店招 编辑:程序博客网 时间:2024/04/30 13:50

一、需要先找到官方标定程序
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

阅读全文
0 0