配置过程很复杂 不是本文重点 所以不大篇幅介绍
需要准备vs2019,OpenCV3.4.14 安装和下载
配置OpenCV到vs2019
准备需要的文件
- cpp文件
在OpenCV文件D:\opencv\sources\samples\cpp中找到 stereomatch.cpp
-
yml文件
intrinsics.yml相机内参数文件
extrinsics.yml相机外参数文件
生成方式可以参考我的博客https://blog.csdn.net/weixin_46195203/article/details/118195086 -
左右相机图像
注意所有文件要放在同一个文件夹下
运行
在vs2019中
步骤:新建项目,导入现有项,选择stereomatch.cpp。配置OpenCV属性管理器,一切准备就绪!这步就简单省略了
首先填写各个文件
std::string img1_filename = "left.jpg";//左图像
std::string img2_filename = "right.jpg";//右图像
std::string intrinsic_filename = "intrinsic.yml";//相机内参数文件
std::string extrinsic_filename = "extrinsics.yml";//相机外参数文件
std::string disparity_filename = "disparity1.png";//深度图
std::string point_cloud_filename = "point_cloud1.ply";//点云图
然后改写代码:
cv::CommandLineParser parser(argc, argv,
"{@arg1|left.jpg|}{@arg2|right.jpg|}{help h||}{algorithm|sgbm|}{max-disparity|256|}{blocksize|1|}{no-display||}{color||}{scale|1|}{i|intrinsics.yml|}{e|extrinsics.yml|}{o||}{p||}");
arg1|left.jpg|左图地址
arg2|right.jpg|右图地址
algorithm|sgbm|可供选择的匹配算法:bm, sgbm, hh, sgbm3way
max-disparity|256| 最大视差范围
blocksize|1| sgbm算法里匹配的块大小。它必须是 > = 1的奇数。通常情况下,它应该在3…11的范围内
i|intrinsics.yml|相机内参数文件
e|extrinsics.yml|相机外参数文件