2016-07-12 12 views
0

私は、linkに続いて、UbuntuにPython 2.7でOpenCV3.1をインストールしました。短いために、ライブラリを構築するとき、私はこのフラグを渡されましたOpenCV 3.1 - opencv_contribのライブラリが見つかりません

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON ..

はすでにOPENCV_EXTRA_MODULES_PATHフラグを可決しました。その後、私はC++opencv_contribから新しいsfmモジュールを試してみたいのですが、このエラーを得た:

/tmp/ccHDBnbF.o: In function `main': cam_motion.cpp:(.text+0x999): undefined reference to `cv::sfm::reconstruct(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_InputOutputArray const&, cv::_OutputArray const&, bool)' cam_motion.cpp:(.text+0xb5a): undefined reference to `cv::viz::Viz3d::Viz3d(cv::String const&)' cam_motion.cpp:(.text+0xba7): undefined reference to `cv::viz::Viz3d::setBackgroundColor(cv::viz::Color const&, cv::viz::Color const&)' cam_motion.cpp:(.text+0xbc0): undefined reference to `cv::viz::Viz3d::registerKeyboardCallback(void (*)(cv::viz::KeyboardEvent const&, void*), void*)' cam_motion.cpp:(.text+0xe2c): undefined reference to `cv::viz::Viz3d::wasStopped() const' cam_motion.cpp:(.text+0xeaf): undefined reference to `cv::Mat::eye(int, int, int)' cam_motion.cpp:(.text+0xfd4): undefined reference to `cv::viz::WCube::WCube(cv::Point3_<double> const&, cv::Point3_<double> const&, bool, cv::viz::Color const&)' cam_motion.cpp:(.text+0x1001): undefined reference to `cv::viz::Widget::setRenderingProperty(int, double)'

私は、これは、リンカの問題だと思います。

問題は何ですか?これをどのように解決できますか?

答えて

0

OpenCV contribパッケージをダウンロードして指定の場所に配置しましたか?その後、here

から、それをダウンロードしない場合は、特定のフォルダ内にそれを入れて、CMakeのとそれをコンパイル中モジュールフォルダまでのパス(絶対パス)を得ました。そしてそれをもう一度構築してみてください。

まだ問題が発生している場合は、その詳細をコメントしてください。

+0

私はMacにOpenCVをインストールするときに同様の方法を使いましたが、対応ライブラリ(libopencv_vizなど)も見つけられませんでした。もう一度やり直します。 – Hilman

+0

問題を解決しました。 SfMを使うためには、OpenCVを-D WITH_VTK = ON(システムにvtkライブラリがインストールされている状態)でビルドする必要があります。 SfMに必要な依存関係もシステムにインストールする必要があります。 – Hilman

関連する問題