Ошибка в брошюровщике () в OpenCv

У меня есть этот код:

#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

Что я должен добавить, чтобы стежок () работал правильно?

2

Решение

Казалось бы, ваш класс Stitcher не имеет публичного конструктора. Если бы это был принадлежащий вам класс, вам нужно было бы предоставить ему открытый конструктор, чтобы можно было создать экземпляр Stitcher, Тем не менее, кажется, что это сторонняя библиотека, быстрый поиск в Google говорит вам о наличии этого метода в Stitcher:

static Stitcher createDefault(bool try_use_gpu = false);

Для того, чтобы создать экземпляр Stitcher вам, вероятно, придется сделать что-то вроде:

Stitcher m_stitcher = Stitcher::CreateDefault();

Редактировать:
Чтобы исправить ошибки компоновщика, вам, вероятно, нужно добавить правильные файлы lib в список входов компоновщика. Эта ссылка должна помочь вам настроить это, http://opencv.willowgarage.com/wiki/InstallGuide

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]