OpenCv中的stitcher()出错

时间:2012-12-19 20:33:47

标签: c++ visual-studio-2010 opencv computer-vision image-stitching

我有这段代码:

#include <opencv2\stitching\stitcher.hpp>

int Stitching()
{
Stitcher m_stitcher = m_stitcher.createDefault(false);

vector<Mat> images; 
Mat img1 = imread("0.jpg"); //read image 0
Mat img2 = imread("1.jpg"); //read image 1
Mat Result;

//add images to the array
images.push_back(img1);
images.push_back(img2);

m_stitcher.stitch(images, Result);
imwrite("panorama.jpg",Result);
return 0;
}

构建后我收到此错误:

  

错误4错误C2248:'cv :: Stitcher :: Stitcher':无法访问私有   成员在课堂上宣布   'cv :: Stitcher'C:\ Users \ Desktop \ Projects \ SamplePanorama -   PanoramaStitch \ SamplePanorama \ StitchEngine.cpp 602

我应该添加什么才能使stitch()正常工作?

1 个答案:

答案 0 :(得分:0)

您的班级Stitcher似乎没有公共构造函数。如果这是您拥有的类,则需要为其提供一个公共构造函数,以便能够构造Stitcher的实例。但是,这似乎是第三方库,快速谷歌搜索会在Stitcher中告诉您这种方法的存在:

static Stitcher createDefault(bool try_use_gpu = false);

为了创建Stitcher的实例,您可能需要执行以下操作:

Stitcher m_stitcher = Stitcher::CreateDefault();

编辑: 为了修复链接器错误,您可能需要将正确的lib文件添加到链接器的输入列表中。此链接可帮助您进行设置,http://opencv.willowgarage.com/wiki/InstallGuide