资源简介
VS2017+OpenCV通过双目视觉原理,通过SIFT特征点匹配恢复物体深度信息,输出三维坐标。
代码片段和文件信息
// NewPointClouds.cpp: 定义控制台应用程序的入口点。
//
// MatchExperiment.cpp: 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include“iostream“
#include“opencv.hpp“
#include“highgui.hpp“
#include“xfeatures2d.hpp“
#define La1 -0.0765583
#define La2 1.12963
#define La3 -0.000478566
#define La4 -0.00934149 //左相机的四个畸变参数
#define Ra1 -0.0564752
#define Ra2 0.598481
#define Ra3 0.00219212
#define Ra4 -0.000801994 //右相机的四个畸变参数
#define Lcx 563.737
#define Lcy 449.899 //左相机的光心位置
#define Rcx 638.157
#define Rcy 478.782 //右相机的光心位置
#define fx1 3317.41
#define fy1 3318.89 //左相机的焦距
#define fx2 3346.03
#define fy2 3347.61 //右相机的焦距
using namespace cv;
using namespace std;
int main()
{
Mat imageL0 = imread(“Pattenimage_L.bmp“);
Mat imageR0 = imread(“Pattenimage_R.bmp“);
//Mat imageL1 imageR1;
//GaussianBlur(imageL0 imageL1 Size(3 3) 0.5);
//GaussianBlur(imageR0 imageR1 Size(3 3) 0.5);
ofstream filedebug;
file.open(“PointClouds.txt“);
debug.open(“debug.txt“);
Mat dist1 = (Mat_(5 1) << La1 La2 La3 La4 0); //左相机畸变参数(k1k2p1p2k3)
Mat dist2 = (Mat_(5 1) << Ra1 Ra2 Ra3 Ra4 0); //右相机畸变参数
double m1[3][3] = { { fx10Lcx }{ 0fy1Lcy }{ 001 } };
Mat m1_matrix(Size(3 3) CV_64F m1); //左相机的内参矩阵
//Mat r1_matrix = Mat::eye(3 3 CV_32FC1); // 左相机旋转矩阵(对角矩阵)
//Mat t1_matrix = (Mat_(3 1) << 0 0 0); //左相机平移矩阵
//Mat p1_matrix(Size(4 3) CV_32F);
//Mat n1_matrix(Size(4 3) CV_32F);
//hconcat(r1_matrix t1_matrix n1_matrix);
// vconcat(B C,A); 等同于A=[B ; C] 按列合并
// hconcat(B C,A); 等同于A=[B C] 按行合并
//p1_matrix = m1_matrix * n1_matrix;//左相机投影矩阵
double m2[3][3] = { { fx20Rcx }{ 0fy2Rcy }{ 001 } };
Mat m2_matrix(Size(3 3) CV_64F m2); //右相机的内参矩阵
float r2[3][1] = { { 0.00778951 }{ -0.121633 }{ 0.0150494 } };
Mat r2_src2(Size(1 3) CV_32F r2);
Mat r2_matrix(Size(3 3) CV_64F); //右相机旋转向量
Rodrigues(r2_src2 r2_matrix); //旋转向量转化为旋转矩阵
Mat t2_matrix = (Mat_(3 1) << 105.017 2.22392 19.288); //右相机平移向量
//Mat p2_matrix(Size(4 3) CV_32F);
//Mat n2_matrix(Size(4 3) CV_32F);
//hconcat(r2_matrix t2_matrix n2_matrix);//右相机外参矩阵3X4
//p2_matrix = m2_matrix * n2_matrix;//右相机投影矩阵
float M1[3][3] = { { fx10Lcx }{ 0fy1Lcy }{ 001 } };
Mat M1_matrix(Size(3 3) CV_32F M1); //左相机的内参矩阵
float M2[3][3] = { { fx20Rcx }{ 0fy2Rcy }{ 001 } };
Mat M2_matrix(Size(3 3) CV_32F M2); //右相机的内参矩阵
Mat R1 = Mat::eye(3 3 CV_32F); //左相机图像畸变矫正
Mat map1x = Mat(imageL0.size() CV_32FC1);
Mat map1y = Mat(imageL0.size() CV_32FC1);
initUndistortRectifyMap(M1_matrix dist1 R1 M1_matrix imageL0.size() CV_32FC1 map1x map1y);
Mat picture1 = imageL0.clone();
remap(imageL0 picture1 map1x map1y INTER_LINEAR);
Mat R2 = Mat::eye(3 3 CV_32F); //右相机图像畸变矫正
Mat map2x = Mat(imageR0.size() CV_32FC1);
Mat map2y = Mat(imageR0.size() CV_32FC1);
initUndis
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-30 09:37 NewPointClouds\
目录 0 2018-05-04 16:56 NewPointClouds\.vs\
目录 0 2018-05-04 16:56 NewPointClouds\.vs\NewPointClouds\
目录 0 2018-06-28 20:26 NewPointClouds\.vs\NewPointClouds\v15\
文件 34816 2018-06-28 20:26 NewPointClouds\.vs\NewPointClouds\v15\.suo
文件 21553152 2018-06-28 20:26 NewPointClouds\.vs\NewPointClouds\v15\Browse.VC.db
目录 0 2018-06-28 10:50 NewPointClouds\.vs\NewPointClouds\v15\ipch\
文件 3538944 2018-06-28 10:50 NewPointClouds\.vs\NewPointClouds\v15\ipch\1b0d489489dd94da.ipch
文件 3604480 2018-05-04 16:56 NewPointClouds\.vs\NewPointClouds\v15\ipch\98b0bdafa38a6eaf.ipch
目录 0 2018-06-28 10:30 NewPointClouds\NewPointClouds\
文件 1456 2018-05-04 16:56 NewPointClouds\NewPointClouds.sln
文件 340 2018-06-28 10:30 NewPointClouds\NewPointClouds\debug.txt
文件 21246 2018-06-28 10:30 NewPointClouds\NewPointClouds\NewPointClouds.cpp
文件 8319 2018-05-04 16:59 NewPointClouds\NewPointClouds\NewPointClouds.vcxproj
文件 1259 2018-05-04 16:56 NewPointClouds\NewPointClouds\NewPointClouds.vcxproj.filters
文件 165 2018-05-04 16:56 NewPointClouds\NewPointClouds\NewPointClouds.vcxproj.user
文件 481078 2018-04-23 09:51 NewPointClouds\NewPointClouds\pattenimage_L.bmp
文件 481078 2018-04-23 09:50 NewPointClouds\NewPointClouds\pattenimage_R.bmp
文件 6560 2018-06-28 10:30 NewPointClouds\NewPointClouds\PointClouds.txt
文件 330 2018-05-04 16:56 NewPointClouds\NewPointClouds\stdafx.cpp
文件 366 2018-05-04 16:56 NewPointClouds\NewPointClouds\stdafx.h
文件 370 2018-05-04 16:56 NewPointClouds\NewPointClouds\targetver.h
目录 0 2018-05-04 16:57 NewPointClouds\NewPointClouds\x64\
目录 0 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\
文件 2406 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.log
文件 1416235 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.obj
文件 2818048 2018-06-28 09:48 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.pch
目录 0 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.tlog\
文件 1810 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.tlog\CL.command.1.tlog
文件 46204 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.tlog\CL.read.1.tlog
文件 1338 2018-06-28 10:30 NewPointClouds\NewPointClouds\x64\Debug\NewPointClouds.tlog\CL.write.1.tlog
............此处省略12个文件信息
相关资源
- opencv火焰检测识别230808
- opencv 张正友相机标定源代码及标定照
- opencv3.4+opencv_contrib3.4+cuda10.0+tbb+win10
- SURF算法+单应矩阵+RANSAC算法实现拼接
- 相机标定单目、双目.zip
- opencv-3.4.1-vc14_vc15.exe(OpenCV VS14.15安装
- OpenCV3.4.1-1安装包
- 从车道线检测项目入门opencv
- opencv安装
- opencv4.0.0.0
- frozen_east_text_detection.pb
- 车牌识别系统opencv版
- OpenCV4.0.0包含Contrib完整包
- opencv_contrib-4.0.1.zip
- opencv_contrib3.4.0+vs2017+win10+opencv3.4.0
- OpenCV3.2.0.chm离线帮助文档opencv官方文
- OpenCV人脸识别样本数据集,包含正样
- OpenCV4经过cmake编译完整的contribute,
- opencv_contrib-4.2.0.zip
- VS2015编译的OpenCV4.1.2
- opencv-4.0.0-vc14_vc15.EXE程序
- 基于OpenCV的计算机视觉技术实现.pdf
- 基于opencv的图像处理
- OpenCV3编程案例详解含源码.zip
- opencv依赖库和install文件debug和release
- opencv3.4.1+opencv_contrib3.4.1编译好的库文
- opencv3.4.2.rar
- opencv-3.4.1(with contrib) 「vs2015(vc1
- OpenCV3.4.0 vs2015 win64 + cmake编译生成的
- OpenCV 3.4.0 官方离线文档
评论
共有 条评论