计算机视觉中文班第二次作业

  • 格式:docx
  • 大小:1.29 MB
  • 文档页数:6

下载文档原格式

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

计算机视觉第二次作业左图像:

右图像:

视差算法(GC算法):

#include

#include

#include

#include

using namespace std;

using namespace cv;

#include

#include

#include

#include

#include

#include

#include

int main()

{

//IplImage * img1 = cvLoadImage("left.png",0);

//IplImage * img2 = cvLoadImage("right.png",0);

//IplImage * img1 = cvLoadImage("tsukuba_l.png",0);

//IplImage * img2 = cvLoadImage("tsukuba_r.png",0);

IplImage * img1 = cvLoadImage("left.png",0);

IplImage * img2 = cvLoadImage("right.png",0);

CvStereoGCState* GCState=cvCreateStereoGCState(64,3);

assert(GCState);

cout<<"start matching using GC"<

CvMat* gcdispleft=cvCreateMat(img1->height,img1->width,CV_16S);

CvMat* gcdispright=cvCreateMat(img2->height,img2->width,CV_16S);

CvMat* gcvdisp=cvCreateMat(img1->height,img1->width,CV_8U);

int64 t=getTickCount();

cvFindStereoCorrespondenceGC(img1,img2,gcdispleft,gcdispright,GCState);

t=getTickCount()-t;

cout<<"Time elapsed:"<

//cvNormalize(gcdispleft,gcvdisp,0,255,CV_MINMAX);

//cvSaveImage("GC_left_disparity.png",gcvdisp);

cvNormalize(gcdispright,gcvdisp,0,255,CV_MINMAX);

cvSaveImage("GC_right_disparity.png",gcvdisp);

cvNamedWindow("GC_disparity",0);

cvShowImage("GC_disparity",gcvdisp);

cvWaitKey(0);

cvReleaseMat(&gcdispleft);

cvReleaseMat(&gcdispright);

cvReleaseMat(&gcvdisp);

return 0;}

编译环境:

Ubuntu 14.04

Opencv 2.4.8

Cmake 2.8.3

具体流程:

第一步:新建一个homework目录

第二步:将左右两图像放入该目录下,并且在该目录下新建两个文档,分别命名为GC.cpp和CMakeLists.txt。

第三步:在GC.cpp文档中写入上面GC算法的代码。

第四步:在CMakeLists.txt中写入以下代码:

cmake_minimum_required(VERSION 2.8)

project(homework)

find_package(OpenCV REQUIRED)

include_directories( ${OpenCV_INCLUDE_DIRS} )

add_executable( homework GC.cpp )

target_link_libraries(homework ${OpenCV_LIBS} )

第五步:执行cmake .

第六步:执行make,生成homework可执行文件

第七步:运行homework

最后得到视差图: