OpenCV 3.1 - 找不到 opencv_contrib 库
Posted
技术标签:
【中文标题】OpenCV 3.1 - 找不到 opencv_contrib 库【英文标题】:OpenCV 3.1 - Cannot find library of opencv_contrib 【发布时间】:2016-07-12 06:40:00 【问题描述】:在link 之后,我在 Ubuntu 上安装了带有 Python 2.7 的 OpenCV3.1。简而言之,在构建库时,我已经通过了这个标志
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)'
我猜这是一个链接器问题。
有什么问题,我该如何解决?
【问题讨论】:
【参考方案1】:您是否下载了 OpenCV contrib 包并将其放置在指定位置?如果没有,请从here下载它
然后将它放在一个特定的文件夹中,并在使用 Cmake 编译时给出路径(绝对路径)直到 modules 文件夹。然后尝试重新构建它。
如果您仍然遇到任何问题,请评论有关它的详细信息。
【讨论】:
我在将 OpenCV 安装到我的 Mac 时使用了类似的方法,也找不到对应的库(如 libopencv_viz)。会再试一次。 解决了这个问题。事实证明,要使用 SfM,我需要使用 -D WITH_VTK=ON 重新构建 OpenCV(当然要在系统中安装 vtk 库)。 SfM 所需的依赖项也需要安装在系统中。以上是关于OpenCV 3.1 - 找不到 opencv_contrib 库的主要内容,如果未能解决你的问题,请参考以下文章
namedWindow() 导致 opencv 2.3.1 崩溃? (在 XP、C++ 上的 Eclipse+MinGW)