• 大小: 7.68MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: 其他
  • 标签: BM  suan  fa  shuang  mu  

资源简介

利用双目相机采集到的左右两幅图片,采用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\link.command.1.tlog
     文件        9048  2019-08-07 13:44  双目demo005\双目demo005\x64\Debug\双目demo005.tlog\link.read.1.tlog
     文件         486  2019-08-07 13:44  双目demo005\双目demo005\x64\Debug\双目demo005.tlog\link.write.1.tlog
     文件         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

评论

共有 条评论