资源简介
利用双目相机采集到的左右两幅图片,采用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
- 下一篇:欺骗的艺术高清版
相关资源
- 基于晶闸管的柔性交流输电控制装置
- 嵌入式音频视频混合为mp4(mp4v2+faac
- IBM SPSS Statistics 24 中文手册
- BMW病毒样本!!!测试专用
- BMS检测代码-12路-串联
- FastReport.Net V2014.4.8 For .Net2.0
- FANUC机器人Socket Message通讯设置及使用
- 编程常用的素材(含png、jif、bmp、j
- winhex exfat DBR模板
- win7纯净系统装kepware 6.x 系列报&ldquo
- 在真实世界中的EMI控制-IBM资深工程师
- wa1208_fat.bin
- IBM智能化油田解决方案
- MegaFace 帐号密码
- jpeglib读取jpeg,转为bmp图,24真彩和灰
- IBM Converged Switch B32(3758)交换机介绍
- 3ds Max游戏角色面部高级绑定视频教程
- 617张国内车牌60-17bmp图片用于OpenCV正样
- Electric repulsive interface for the superhydr
- 2010年IBM全球CEO调研报告
- 03-IBM DOORS ISO26262 Certificate.pdf
- 一种基于LBM的气液固三相流多尺度模
- Internal Fault Diagnosis ofPermanent Magnet Sy
- Analysis of Sulfamerazine in Pond Water and Se
- pEGFP-N1/BMP-2真核表达质粒的构建与鉴定
- getif-2.3.1
- DVDFab_VirtualDrive
- faster rcnn流程图
- 默罕默德-格子玻尔兹曼方法书籍
- 浮点数的DFA识别算法
评论
共有 条评论