gpt4 book ai didi

opencv - 为什么 OpenCV_FOUND 设置为 false?

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:59 46 4
gpt4 key购买 nike

首先,我知道这个问题有太多重复项,但没有一个对我有用。

我已经在我的 Ubuntu 16.04 系统上安装了 OpenCV 2.4.13.2。我按照此处列出的安装说明进行操作:http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/ .按照其中提到的第 6 步,我可以确认 OpenCV 已成功安装。

但是,当我在构建此项目时尝试运行 cmake .. 时:https://github.com/andrewssobral/vehicle_detection_haarcascades/ ,我收到一条错误消息:

Found OpenCV Windows Pack but it has not binaries compatible with your configuration.

You should manually point CMake variable OpenCV_DIR to your build of OpenCV library. Call Stack (most recent call first): CMakeLists.txt:5 (find_package)

CMake Error at CMakeLists.txt:5 (find_package): Found package configuration file:

/home/abhishek/opencv-2.4.13.2/cmake/OpenCVConfig.cmake

but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.

-- Configuring incomplete, errors occurred! See also "/home/abhishek/opencv-2.4.13.2/vehicle_detection_haarcascades/build/CMakeFiles/CMakeOutput.log".

正如其他 SO 答案中提到的,我尝试删除缓存文件、重新安装、在不同的目录中重新安装等,但都没有用。那么,我该如何克服这个错误呢?我将在学术环境中使用这个车辆检测项目(主要用 C++ 开发),非常感谢您的帮助!

最佳答案

有关何时以及如何将 OpenCV_FOUND 设置为 TRUEFALSE 的一些背景信息。

注意:OpenCVConfig.cmake 的代码确实因 OpenCV 版本而异,但一般功能或多或少保持不变。我评论了版本 3.2.0 并针对此答案与版本 2.4.10 进行交叉检查:

  1. 这些事情在 find_package_handle_standard_args() 中处理来电OpenCVConfig.cmake

    find_package_handle_standard_args(OpenCV REQUIRED_VARS OpenCV_INSTALL_PATH
    VERSION_VAR OpenCV_VERSION ${_OpenCV_FPHSA_ARGS})

    如果 REQUIRED_VARS 之一无法确定(未设置)或 VERSION_VAR 中给出的版本不匹配,则 OpenCV_FOUND设置为 FALSE

  2. OpenCV_INSTALL_PATH 期间直接放入 CMake 配置中构建:

    get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/@OpenCV_INSTALL_PATH_RELATIVE_CONFIGCMAKE@" REALPATH) 

    因此,如果找到配置脚本本身,这不太可能失败。

    但请注意绝对路径可能在生成的配置文件中。所以不要移动它或手动安装它。因此,您应该检查 /home/abhishek/opencv-2.4.13.2/cmake/OpenCVConfig.cmake 是否存在无效/不匹配的路径。

  3. 根据项目的 find_package(OpenCV [version] ...) 调用中给出的任何内容检查 OpenCV_VERSION 作为 version

    但是vehicle_detection_haarcascades/CMakeLists.txt没有指定特定版本:

    find_package(OpenCV REQUIRED)
  4. ${_OpenCV_FPHSA_ARGS} 将为 CMake 版本 >= 2.8.8 放置一个 HANDLE_COMPONENTS。这将另外检查 find_package(OpenCV COMPONENTS ...) 调用中给出的 COMPONENTS

    但这在这里也不适用(见上文)。

  5. 最后,如果未找到必要的 find_package() 调用本身可以将 OpenCV_FOUND 设置为 FALSE配置文件。

    但这似乎不是这种情况,因为您的错误命名了它找到配置脚本的路径。

引用资料

关于opencv - 为什么 OpenCV_FOUND 设置为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400093/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com