나는이 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)'
나는이 링커 문제 같아요.
무엇이 문제이며 어떻게 해결할 수 있습니까?
Mac에 OpenCV를 설치할 때 비슷한 방법을 사용했으며 libopencv_viz와 같은 통신 라이브러리를 찾을 수 없습니다. 다시 시도 할 것입니다. – Hilman
문제가 해결되었습니다. SfM을 사용하려면 OpenCV를 -D WITH_VTK = ON (물론 시스템에 vtk 라이브러리가 설치된 상태)으로 다시 빌드해야합니다. SfM에 필요한 종속성도 시스템에 설치해야합니다. – Hilman