资源简介
文章名称:3-D Point Cloud Generation from Rigid and Flexible Stereo Vision Systems
文章(英文)详细讲解了双目视觉的一些基本原理,已经如何使用两个普通的网络摄像头来实现双目视觉,以及如何根据两个摄像头来计算物体深度信息。
代码为文章中附带的代码
仅供参考学习
代码片段和文件信息
#include “StereoFunctions.h“
#include “math.h“
int fileNO = 0;
//variables for correlation routine some of them can be changed in analysis mode with
the correlation tools window
int stereoDispWindowSize //41
stereoDispTextureThreshold //15
stereoDispUniquenessRatio //10
stereoPreFilterSize
stereoPreFilterCap
stereoSavePointCloudValue
stereoSaveOriginal
stereoNumDisparities;
//Correlates pixels from the left and right images results in a disparity map which is
stored in the variable ‘disp‘
void StereoFunctions::stereoCorrelation()
{
//Setup for finding stereo corrrespondences
CvStereoBMState *BMState = cvCreateStereoBMState();
assert(BMState != 0);
BMState->preFilterSize= stereoPreFilterSize;
BMState->preFilterCap= stereoPreFilterCap;
BMState->SADWindowSize= stereoDispWindowSize;
BMState->minDisparity=0;
BMState->numberOfDisparities=stereoNumDisparities;
BMState->textureThreshold = stereoDispTextureThreshold;
BMState->uniquenessRatio = stereoDispUniquenessRatio;
//timing for stereo correspondence can be assessed by turning on the timer
/* double time_tot =0;
clock_t start diff;
double difference;
for(int i=0;i<100;i++)
{
start=clock();*/
cvFindStereoCorrespondenceBM(img1r img2r disp BMState);
//performs stereo correspondence on the rectified left and right images
/* diff = clock() - start;
difference = (double)diff/CLOCKS_PER_SEC;
time_tot+=difference;
}
printf(“Time taken %f seconds“(double)((double)time_tot/100));*/
cvNormalize( disp vdisp 0 256 CV_MINMAX );
//save rectified iamges and disparity map if SHOW_SAVE_DATA is set to 1
if(SHOW_SAVE_DATA){
cvShowImage(“Disparity Map“ vdisp);
string dispFile;
stringstream str str2str3;
string left right;
str<<“Disparities/DisparityMap“<<“-“< dispFile=str.str();
cvSaveImage(&dispFile[0]vdisp);
str2<<“Rectified/Left“<<“-“< str3<<“Rectified/Right“<<“-“< left=str2.str();
right=str3.str();
cvSaveImage(&left[0]img1r);
cvSaveImage(&right[0]img2r);
}
cvReleaseStereoBMState(&BMState);
fileNO++;
}
//Saves point clouds to Dylan‘s and Dan‘s viewer format as well as ascii format for
applied imagery integration
//
void StereoFunctions::stereoSavePointCloud()
{
//used to store reprojected 3-D image using open cv reprojection routine
CvMat* threeDimage = cvCreateMat( imageSize.height
imageSize.width CV_32FC3);
FILE * threeFile* distanceFile;
//number of points in the point cloud needed for dylans viewer
long pointCount=0;
double depth=0 horiz=0 vert=0;
//vectors to store 3-D points calculated from reprojection
CvMat *depthM = cvCreateMat(imageSize.height imageSize.width CV_32F)
*horizM = cvCreateMat(imageSize.height imageSize.width CV_32F)
*vertM = cvCreateMat(imageSize.height imageSize.width CV_32F);
//create strings for point cloud files
stringstream strThreeD;
stringstream strDistance;
if(POINT_CLOUD_FMT_DYLAN)
strThreeD<<“Image-“<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9733 2016-05-08 21:43 StereoMain.cpp
文件 5488715 2016-05-08 21:37 Short_NJ_T_2009.pdf
文件 2022 2016-05-08 21:44 stdafx.h
文件 13942 2016-05-08 21:50 StereoFunctions.cpp
文件 1209 2016-05-08 21:49 StereoFunctions.h
文件 8668 2016-05-08 21:48 StereoGrabber.cpp
文件 880 2016-05-08 21:45 StereoGrabber.h
----------- --------- ---------- ----- ----
5525169 7
- 上一篇:极致板材开料木工行业下料软件
- 下一篇:rar(19)
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- 基于双目视觉的矿井机车定位方法
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
评论
共有 条评论