У меня есть этот код:
#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
Что я должен добавить, чтобы стежок () работал правильно?
Казалось бы, ваш класс 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
Других решений пока нет …