首先,我知道这个问题有太多重复,但在我的情况下都没有。
我在Ubuntu 16.04系统上安装了OpenCV 2.4.13.2。我按照此处列出的安装说明进行操作:http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/。根据其中提到的步骤#6,我可以确认OpenCV已成功安装。
但是,当我在构建此项目时尝试运行Average hourly latency for the month of April
Hour | Average Latency
---- | ---------------
12AM | 123.4
1AM | 156.7
...
:https://github.com/andrewssobral/vehicle_detection_haarcascades/时,我收到错误消息:
找到OpenCV Windows Pack,但它没有与您的二进制文件兼容 配置。
您应该手动将CMake变量OpenCV_DIR指向您的OpenCV构建 图书馆。 呼叫堆栈(最近一次呼叫): CMakeLists.txt:5(find_package)
CMakeLists.txt的CMake错误:5(find_package): 找到包配置文件:
/home/abhishek/opencv-2.4.13.2/cmake/OpenCVConfig.cmake
但它将OpenCV_FOUND设置为FALSE,因此认为包“OpenCV”是 没找到。
- 配置不完整,发生错误! 另见“/home/abhishek/opencv-2.4.13.2/vehicle_detection_haarcascades/build/CMakeFiles/CMakeOutput.log”。
正如在其他SO答案中所提到的,我尝试删除缓存文件,重新安装,重新安装在不同的目录等,但它们都不起作用。那么,我该如何克服这个错误呢?我将在学术环境中使用这个车辆检测项目(主要在C ++中开发),我将非常感谢您的帮助!
答案 0 :(得分:2)
有关何时以及如何OpenCV_FOUND
设置为TRUE
或FALSE
的一些背景信息。
注意:OpenCVConfig.cmake
的代码确实因OpenCV版本而异,但一般功能或多或少保持不变。我已经审核了opencv版本3.2.0,并针对此答案对2.4.10版进行了交叉检查:
这些内容在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
。
在opencv版本中,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
是否存在无效/不匹配的路径。
根据项目OpenCV_VERSION
调用中find_package(OpenCV [version] ...)
调用的内容检查version
。
但是vehicle_detection_haarcascades/CMakeLists.txt
没有指定特定版本:
find_package(OpenCV REQUIRED)
${_OpenCV_FPHSA_ARGS}
将HANDLE_COMPONENTS
放入CMake版本> = 2.8.8。这还会检查COMPONENTS
来电中给出的find_package(OpenCV COMPONENTS ...)
。
但这也不适用于此(见上文)。
如果find_package()
调用没有找到必要的opencv配置文件,那么OpenCV_FOUND
调用本身可以将FALSE
设置为FOLDER=folder100.000.$1
cd parent_folder/${FOLDER}
。
但这似乎并非如此,因为您的错误命名了它找到配置脚本的路径。
<强>参考强>
Install-OpenCV
完成了在我的Ubuntu安装上正确安装opencv的技巧答案 1 :(得分:1)
由于您使用的是Ubuntu 16.04,您是否尝试过打包的OpenCV?我没有16.04方便,但检测工作正常15.10。
[zinc:~/q] lsb_release -sa
No LSB modules are available.
Ubuntu
Ubuntu 15.10
15.10
wily
[zinc:~/q] dpkg --get-selections cmake libopencv-dev
cmake install
libopencv-dev install
[zinc:~/q] cat CMakeLists.txt
cmake_minimum_required(VERSION 3.7)
include(CMakePrintHelpers)
find_package(OpenCV REQUIRED)
cmake_print_variables(OpenCV_LIBS)
[zinc:~/q] cmake .
-- The C compiler identification is GNU 5.2.1
-- The CXX compiler identification is GNU 5.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- OpenCV_LIBS="opencv_videostab;opencv_video;opencv_ts;opencv_superres;opencv_stitching;opencv_photo;opencv_ocl;opencv_objdetect;opencv_ml;opencv_legacy;opencv_imgproc;opencv_highgui;opencv_gpu;opencv_flann;opencv_features2d;opencv_core;opencv_contrib;opencv_calib3d"
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nega/q
[zinc:~/q]
答案 2 :(得分:1)
如果一切顺利,直到第6步没有错误,我认为可能导致此错误显示的问题是您没有在虚拟环境中工作,所以我认为这应该有所帮助: 开放式终端 - &gt;类型:workon cv - &gt;执行cmake
答案 3 :(得分:0)
在几次浪费时间解决这个问题之后,我已经决定发布解决了我的问题以供将来参考,以防我在3个月后再次忘记。
假设OpenCV安装正确,我不需要手动设置$ OpenCV_FOUND,我也不需要触摸OpenCV安装文件夹中的任何文件(/home/.../opencv-3.1.0/ {build,cmake} /),我唯一需要做的就是:
set(OpenCV_DIR "/usr/local/share/OpenCV/")
或set(OpenCV_DIR "/home/.../opencv-3.1.0/build/")
cmake ..
等。 FIND_PACKAGE( OpenCV REQUIRED )
语句。