资源简介
利用双目相机采集到的左右两幅图片,采用BM立体匹配算法生成视差图和深度图。其中包括双目标定、双目校正、立体匹配、计算深度等步骤。
外加鼠标回调函数,可以获得视差图中每一点的坐标信息(在相机坐标系下的坐标),其中z代表深度值。
代码亲自验证有效,有详细注释,如有问题,随时博客联系我,我会一一解答。

代码片段和文件信息
//程序功能:demoV1.1-立体匹配与测距输出深度图
//官方网址:莱娜网 www.FpgaLena.com
//程序版本:2017-03-V1.1
//需要修改的参数:程序中共计4个位置需要根据应用场景来修改参数(已在代码旁做了备注)
#include
#include
using namespace std;
using namespace cv;
const int imageWidth = 1280; //摄像头单目的分辨率########--【需要调整参数的位置1】--#############
const int imageHeight = 720;
Size imageSize = Size(imageWidth imageHeight);
Mat rgbImageL grayImageL;
Mat rgbImageR grayImageR;
Mat rectifyImageL rectifyImageR;
Mat disp disp8;
Mat depthMap;
Rect validROIL; //图像校正之后,会对图像进行裁剪,这里的validROI就是指裁剪之后的区域
Rect validROIR;
Mat mapLx mapLy mapRx mapRy; //映射表
Mat Rl Rr Pl Pr Q; //校正旋转矩阵R,投影矩阵P 重投影矩阵Q
Mat xyz; //三维坐标
Point origin; //鼠标按下的起始点
Rect selection; //定义矩形选框
bool selectobject = false; //是否选择对象
int blockSize = 6 uniquenessRatio = 30 numDisparities = 9; //与算法相关的参数,【需要调整参数的位置2】--############
Ptr bm = StereoBM::create(16 9);
//########--【以下双目的标定参数为:需要调整参数的位置3】--#############
//相机双目标定的结果与如下各参数的对应关系见:双目标定结果说明.pdf,pdf文档位于main.cpp(即本文档)同级文件夹--#############
/*左目相机标定参数------------------------
fc_left_x 0 cc_left_x
0 fc_left_y cc_left_y
0 0 1
-----------------------------------------*/
Mat cameraMatrixL = (Mat_(3 3) << 1450.45938 0 579.88716
0 1452.62035 376.32695
0 0 1);
Mat distCoeffL = (Mat_(5 1) << 0.03569 0.29314 -0.00011 -0.00491 0.00000);
//[kc_left_01 kc_left_02 kc_left_03 kc_left_04 kc_left_05]
/*右目相机标定参数------------------------
fc_right_x 0 cc_right_x
0 fc_right_y cc_right_y
0 0 1
-----------------------------------------*/
Mat cameraMatrixR = (Mat_(3 3) << 1451.78149 0 684.04159
0 1453.54807 350.52935
0 0 1);
Mat distCoeffR = (Mat_(5 1) << 0.09596 -0.42760 -0.00378 -0.00112 0.00000);
//[kc_right_01 kc_right_02 kc_right_03 kc_right_04 kc_right_05]
Mat T = (Mat_(3 1) << -28.11909 0.11966 0.21590); //T平移向量
//[T_01 T_02 T_03]
Mat rec = (Mat_(3 1) << -0.01688 -0.00781 -0.00766); //rec旋转向量
//[rec_01 rec_02 rec_03]
//########--双目的标定参数填写完毕----------------------------------------------
Mat R; //R矩阵,用于中间计算
//--立体匹配--------------------------------------------------------------------
void stereo_match(int void*)
{
bm->setBlockSize(2 * blockSize + 5); //SAD窗口大小,5~21之间为宜
bm->setROI1(validROIL);
bm->setROI2(validROIR);
bm->setPreFilterCap(31);
bm->setMinDisparity(0); //最小视差,默认值为0 可以是负值,int型
bm->setNumDisparities(numDisparities
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-08-07 13:45 双目demo005\
目录 0 2019-05-20 08:03 双目demo005\x64\
目录 0 2019-08-07 13:44 双目demo005\x64\Debug\
文件 141312 2019-08-07 13:44 双目demo005\x64\Debug\双目demo005.exe
文件 637024 2019-08-07 13:44 双目demo005\x64\Debug\双目demo005.ilk
文件 1346560 2019-08-07 13:44 双目demo005\x64\Debug\双目demo005.pdb
目录 0 2019-05-21 08:11 双目demo005\双目demo005\
文件 14811136 2019-08-07 13:45 双目demo005\双目demo005.sdf
文件 1339 2019-05-20 08:03 双目demo005\双目demo005.sln
文件 20480 2019-08-07 13:45 双目demo005\双目demo005.v12.suo
文件 10235 2019-05-21 08:11 双目demo005\双目demo005\main.cpp
文件 2764854 2017-04-09 16:24 双目demo005\双目demo005\Test-02-left.bmp
文件 2764854 2017-04-09 16:24 双目demo005\双目demo005\Test-02-right.bmp
目录 0 2019-05-20 08:03 双目demo005\双目demo005\x64\
目录 0 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\
文件 518591 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\main.obj
文件 494592 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\vc120.idb
文件 962560 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\vc120.pdb
文件 1111 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.Build.CppClean.log
文件 740 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.log
目录 0 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\
文件 556 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\cl.command.1.tlog
文件 14082 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\CL.read.1.tlog
文件 500 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\CL.write.1.tlog
文件 3182 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\li
文件 9048 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\li
文件 486 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\li
文件 177 2019-08-07 13:44 双目demo005\双目demo005\x64\Debug\双目demo005.tlog\双目demo005.lastbuildstate
文件 5892 2019-05-20 08:03 双目demo005\双目demo005\双目demo005.vcxproj
文件 945 2019-05-20 08:03 双目demo005\双目demo005\双目demo005.vcxproj.filters
- 上一篇:2019上网络管理员真题及解析.zip
- 下一篇:欺骗的艺术高清版
相关资源
- Visio大全模具(含Cisco、IBM等常用拓扑
- The direction of synaptic plasticity mediated
- Fabrication and all-optical poling characteris
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- MSP430f149读sd FAT txt
- 德卡D8读写器关于读写感应卡的一些代
- 银行家算法_fat.jar
- 如何实现bmp位图透明贴图
- bmp文件读出为txt文件 txt文件写入为
- bmp2c
- BmpButton
- 发那科fanuc机器人robot(电气调试启动
- FANUC各硬件连接规格,型号,和连接方
-
Differential ex
pression patterns of Toll-li -
解决安装vs2012后vs2010 li
nk : fatal er - Behaviors of fatigue crack propagation in fric
- LHC生命周期前沿的非弹性暗物质:A
- Fanuc机器人PNS程序和RSR程序启动改.d
- USB网卡驱动 USB2.0 TO Fast Ethernet Adapte
- CBM2199E量产工具.rar
- Face Alignment by Explicit Shape Regression-注释
- 轻量级文件服务器Fdfs搭建(fastDFS+n
- Indentification of Interface Blocker to the LA
- IBM Rational Software Architect 9.0破解文件
- 褐色中脉bmr高粱农艺性状与饲用价值
- Surface pro 7 SD卡固定硬盘X64驱动带数字
- new surface pro第5代官方最新系统家庭版
- IBM SAN 数据网关解决方案助力Summit B
- NetApp FAS3050助阿尔卡特建ClearCase加速软
- IBM System x3800英文
评论
共有 条评论