生成视差图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "cv.h"
#include "cvaux.h"
#include "cxcore.h"
#include "highgui.h"
//reference: OpenCV1.1 cvref.htm
//by Gong Peiliang in SIA, CAS;
//11-11 2008
//东门吹雪
int main( int argc, char** argv)
{
IplImage * cv_left_rectified;
IplImage * cv_right_rectified;

//note the sequence of the stereo pairs
cv_left_rectified = cvLoadImage( "left02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv_right_rectified = cvLoadImage( "right02.jpg", CV_LOAD_IMAGE_GRAYSCALE);
CvSize size = cvGetSize( cv_left_rectified );
//the disparity map is an array h*w, with 16bit signed elements.
CvMat* disparity_left = cvCreateMat( size.height, size.width, CV_16S );
CvMat* disparity_right = cvCreateMat( size.height, size.width, CV_16S );
CvStereoGCState* state = cvCreateStereoGCState( 16, 2 );
cvFindStereoCorrespondenceGC( cv_left_rectified,
cv_right_rectified,
disparity_left,
disparity_right,
state,
0 );
cvReleaseStereoGCState( &state );
//post-progressing the result
CvMat* disparity_left_visual = cvCreateMat( size.height, size.width, CV_8U );
cvConvertScale( disparity_left, disparity_left_visual, -16 );
cvSave( "disparity.png", disparity_left_visual );

cvNamedWindow( "disparity", 1);
cvShowImage("disparity", disparity_left_visual );
cvWaitKey( 0 );
cvDestroyWindow( "disparity" );
return 0;
}

相关文档
最新文档