资源简介

基于加拿大灰点公司的bumblebee2双目相机SDK+opencv3.3.1实现双目立体标定、深度伪彩色图像实施显示、鼠标实时测距、实时帧率等。

资源截图

代码片段和文件信息

#include “Calibrate.h“
/*
Mat R_image //左相机图片
Mat L_image //右相机图片
char save //键盘响应按键
int cnt //照片计数(cnt初值为1)
String Photo_Save_Filename //保存路径文件夹
*/
void SavePhoto(Mat R_image Mat L_imagechar saveint cnt String Photo_Save_Filename)
{

String Photoname;
cv::imshow(“Rimage“ R_image);
cv::imshow(“Limage“ L_image);
if (save == ‘Y‘)
{
//左相机存储
Photoname = “Left“ + std::to_string(cnt) + “.jpg“;
Photoname = Photo_Save_Filename + Photoname;
cout << “save:“ << Photoname << endl;
cv::imwrite(Photoname L_image);

//右相机存储
Photoname = “Right“ + std::to_string(cnt) + “.jpg“;
Photoname = Photo_Save_Filename + Photoname;
cout << “save:“ << Photoname << endl;
cv::imwrite(Photoname R_image);
cnt++;

}

}




/*
Size board_size//标定板行列数
string Left_Calibrate_photo_file//标定照片路径
string Right_Calibrate_photo_file//标定照片路径
string Save_Calibrate_Data_file//校正参数保存文件
int photo_num //标定照片数量   #define photo_num 23 //标定照片数量
*/
 

void BB2_Calibrate(Size board_size string Left_Calibrate_photo_file string Right_Calibrate_photo_file string Save_Calibrate_Data_file
int photo_num)
{
 //********STEP1:单目相机标定***********
 //左相机标定
ifstream Lfin(Left_Calibrate_photo_file); /* 标定所用图像文件的路径 */
string Lfilename;
Size L_image_size;  /* 图像的尺寸 */
int L_image_count = 0;  /* 图像数量 */
vector> Left_image_points_all; /* 保存检测到的所有角点 */
vector L_image_points_buf;  /* 缓存每幅图像上检测到的角点 */
 //文件操作
while (L_image_count {
getline(Lfin Lfilename);
L_image_count++;
Mat imageInput = imread(Lfilename);

if (L_image_count == 1)  //读入第一张图片时获取图像宽高信息
{
L_image_size.width = imageInput.cols;
L_image_size.height = imageInput.rows;
}

/* 提取角点 */
if (findChessboardCorners(imageInput board_size L_image_points_buf) == 0)
{
std::cout << “找不到角点,请检查参数设置!“ << endl;; //找不到角点
exit(1);
}
else
{
Mat view_gray;
cvtColor(imageInput view_gray CV_RGB2GRAY);//转灰度图像
cornerSubPix(view_gray L_image_points_buf Size(5 5) Size(-1 -1) TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER 30 0.1));//亚像素处理
Left_image_points_all.push_back(L_image_points_buf);  //保存亚像素角点
drawChessboardCorners(imageInput board_size L_image_points_buf true);//用于在图片中标记角点
imshow(“Left Camera Calibration“ imageInput);//显示图片
//imwrite(“G:/bd/Left“+to_string(L_image_count)+“.jpg“ imageInput);
waitKey(400);//暂停
}
}
int L_CornerNum = board_size.width*board_size.height;  //每张图片上总的角点数
std::cout << “左相机角点提取完成!“ << endl;


//标定过程
Size square_size = Size(31.5f 31.5f);  //实际测量得到的标定板上每个棋盘格的大小
vector> Left_object_points; // 保存标定板上角点的三维坐标
vector Left_point_counts;  // 每幅图像中角点的数量
Mat Left_cameraMatrix = Mat(3 3 CV_32FC1 Scalar::all(0));// 摄像机内参数矩阵(FxFyCxCy) 
Mat Left_distCoeffs = Mat(1 5 CV_32FC1 Scalar::all(0));  // 摄像机的5个畸变系数:k1k2p1p2k3
vector Left_tvecsMat; 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     53760  2018-10-04 18:11  TWO\.vs\TWO\v14\.suo

     文件      61440  2018-09-11 16:19  TWO\Debug\TWO.pdb

     文件      12784  2018-10-02 14:41  TWO\TWO\Calibrate.cpp

     文件        818  2018-09-25 12:08  TWO\TWO\Calibrate.h

     文件       5981  2018-09-14 09:20  TWO\TWO\camera_configuration_tool.cpp

     文件       2471  2018-09-12 11:46  TWO\TWO\camera_configuration_tool.h

     文件     290395  2018-09-11 16:08  TWO\TWO\Debug\Example_Exception.obj

     文件     193750  2018-09-11 16:19  TWO\TWO\Debug\grab_stereo.obj

     文件       4346  2018-09-11 16:08  TWO\TWO\Debug\stdafx.obj

     文件       9354  2018-09-11 16:19  TWO\TWO\Debug\TWO.log

     文件     179220  2018-09-11 16:19  TWO\TWO\Debug\TWO.obj

     文件       3638  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\CL.command.1.tlog

     文件      78216  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\CL.read.1.tlog

     文件       2260  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\CL.write.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link-cvtres.read.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link-cvtres.write.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link-rc.read.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link-rc.write.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link.command.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link.read.1.tlog

     文件          2  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\link.write.1.tlog

     文件        192  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\TWO.lastbuildstate

     文件          0  2018-09-11 16:19  TWO\TWO\Debug\TWO.tlog\unsuccessfulbuild

     文件    1059840  2018-09-11 16:19  TWO\TWO\Debug\vc140.idb

     文件     585728  2018-09-11 16:19  TWO\TWO\Debug\vc140.pdb

     文件     154165  2018-09-11 17:39  TWO\TWO\disparity.png

     文件       1257  2018-09-03 16:21  TWO\TWO\Example_Exception.cpp

     文件       2491  2017-03-26 18:40  TWO\TWO\Example_Exception.h

     文件       7412  2017-03-26 18:40  TWO\TWO\getopt.c

     文件       8516  2017-03-26 18:40  TWO\TWO\getopt.h

............此处省略51个文件信息

评论

共有 条评论