2

私はこのコードを持っています:

#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() を正しく機能させるには何を追加すればよいですか?

4

1 に答える 1

0

クラス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

于 2012-12-19T20:45:28.170 に答える