2016-07-12 4 views
0

나는이 link 다음에 우분투에 OpenCV3.1을 Python 2.7과 함께 설치했습니다. 라이브러리를 구축 할 때 짧은 들어, 나는 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

관련 문제