我有这段代码:
#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()正常工作?
答案 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