计算机视觉中文班第二次作业
- 格式:docx
- 大小:1.29 MB
- 文档页数:6
计算机视觉第二次作业左图像:
右图像:
视差算法(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 最后得到视差图: