资源简介
代码对应于本人博客
http://blog.csdn.net/bcj296050240/article/details/52778741。
博客中详细描述了该项目中各段代码的用途。该代码可以实现双目视觉标定和立体匹配、视差计算、深度图生成等功能。并配有标定图片。欢迎交流
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
typedef unsigned int uint;
Size imgSize(1280 720);
Size patSize(14 12); //每张棋盘寻找的角点个数是14*12个
const double patLen = 5.0f; // unit: mm 标定板每个格的宽度(金属标定板)
double imgScale = 1.0; //图像缩放的比例因子
//将要读取的图片路径存储在fileList中
vector fileList;
void initFileList(string dir int first int last){
fileList.clear();
for(int cur = first; cur <= last; cur++){
string str_file = dir + “/“ + to_string(cur) + “.jpg“;
fileList.push_back(str_file);
}
}
// 生成点云坐标后保存
static void saveXYZ(string filename const Mat& mat)
{
const double max_z = 1.0e4;
ofstream fp(filename);
if (!fp.is_open())
{
std::cout<<“打开点云文件失败“< fp.close();
return ;
}
//遍历写入
for(int y = 0; y < mat.rows; y++)
{
for(int x = 0; x < mat.cols; x++)
{
Vec3f point = mat.at(y x); //三通道浮点型
if(fabs(point[2] - max_z) < FLT_EPSILON || fabs(point[2]) > max_z)
continue;
fp< }
}
fp.close();
}
// 存储视差数据
void saveDisp(const string filename const Mat& mat)
{
ofstream fp(filename ios::out);
fp< fp< for(int y = 0; y < mat.rows; y++)
{
for(int x = 0; x < mat.cols; x++)
{
double disp = mat.at(y x); // 这里视差矩阵是CV_16S 格式的,故用 short 类型读取
fp< }
}
fp.close();
}
void F_Gray2Color(Mat gray_mat Mat& color_mat)
{
color_mat = Mat::zeros(gray_mat.size() CV_8UC3);
int rows = color_mat.rows cols = color_mat.cols;
Mat red = Mat(gray_mat.rows gray_mat.cols CV_8U);
Mat green = Mat(gray_mat.rows gray_mat.cols CV_8U);
Mat blue = Mat(gray_mat.rows gray_mat.cols CV_8U);
Mat mask = Mat(gray_mat.rows gray_mat.cols CV_8U);
subtract(gray_mat Scalar(255) blue); // blue(I) = 255 - gray(I)
red = gray_mat.clone(); // red(I) = gray(I)
green = gray_mat.clone(); // green(I) = gray(I)if gray(I) < 128
compare(green 128 mask CMP_GE); // green(I) = 255 - gray(I) if gray(I) >= 128
subtract(green Scalar(255) green mask);
convertScaleAbs(green green 2.0 2.0);
vector vec;
vec.push_back(red);
vec.push_back(green);
vec.push_back(blue);
cv::merge(vec color_mat);
}
Mat F_mergeImg(Mat img1 Mat disp8){
Mat color_mat = Mat::zeros(img1.size() CV_8UC3);
Mat red = img1.clone(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 311296 2016-10-10 15:01 双目立体标定与测量\深度测量9-18\Debug\深度测量9-18.exe
文件 3001292 2016-10-10 15:01 双目立体标定与测量\深度测量9-18\Debug\深度测量9-18.ilk
文件 4205568 2016-10-10 15:01 双目立体标定与测量\深度测量9-18\Debug\深度测量9-18.pdb
文件 118193 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\1.jpg
文件 116716 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\10.jpg
文件 117519 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\11.jpg
文件 120710 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\12.jpg
文件 123909 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\13.jpg
文件 119138 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\14.jpg
文件 124350 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\15.jpg
文件 123276 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\16.jpg
文件 122096 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\17.jpg
文件 125637 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\18.jpg
文件 124065 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\19.jpg
文件 119800 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\2.jpg
文件 122747 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\20.jpg
文件 126737 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\21.jpg
文件 129057 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\22.jpg
文件 119591 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\23.jpg
文件 125547 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\24.jpg
文件 122488 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\25.jpg
文件 121488 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\26.jpg
文件 116381 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\3.jpg
文件 116875 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\4.jpg
文件 123037 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\5.jpg
文件 123287 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\6.jpg
文件 128970 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\7.jpg
文件 123694 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\8.jpg
文件 117036 2016-09-29 22:49 双目立体标定与测量\深度测量9-18\深度测量9-18\calib_pic\9.jpg
文件 217519 2016-09-29 10:57 双目立体标定与测量\深度测量9-18\深度测量9-18\Debug\camera_cap.obj
............此处省略495个文件信息
评论
共有 条评论