当前位置:   article > 正文

ubuntu20.0.4安装opencv4.2.0和opencv_contrib-4.2.0并支持CUDA,Geforce RTX 3060显卡,算力8.6_ubuntu安装opencv4.2

ubuntu安装opencv4.2

参考:Ubuntu系统---配置OpenCV 

一、下载和安装依赖包

1、首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败。在终端输入:

  1. sudo apt-get update
  2. sudo apt-get upgrade

2、接着安装官方给的opencv依赖包,在终端输入:

  1. sudo apt-get install build-essential
  2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  3. sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
  4. sudo apt-get -y install libgstreamer-plugins-base1.0-dev
  5. sudo apt-get -y install libgstreamer1.0-dev
  6. sudo apt-get install libvtk6-dev

OpenCV3.4.x版本+Opencv_contrib+Ubuntu16.04安装记录_YuYunTan的博客-CSDN博客

安装前的必备包

  这些安装不算十分完全,我只安装自己够用就成的某些包。
  安装一些必要的库,还有cmake,git,g++。

  1. sudo apt-get install build-essential
  2. sudo apt-get install cmake git g++

安装依赖包

  安装一些依赖包。

  1. sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
  2. sudo apt-get install checkinstall yasm libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libfaac-dev libmp3lame-dev libtheora-dev
  3. sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev libavresample-dev x264 v4l-utils

处理图像所需的包

sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 

处理视频所需包

sudo apt-get install libxvidcore-dev libx264-dev ffmpeg

opencv功能优化

sudo apt-get install libatlas-base-dev gfortran 

部分依赖包

  1. sudo apt-get install libopencv-dev libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.4 libcholmod3.0.6
  2. sudo apt-get install python-dev python-numpy

可选依赖

  1. sudo apt-get install libprotobuf-dev protobuf-compiler
  2. sudo apt-get install libgoogle-glog-dev libgflags-dev
  3. sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

3.下载cmake-gui工具和mingw-w64

  1. sudo apt install cmake-qt-gui
  2. sudo apt install mingw-w64

二、下载opencv4.2.0和opencv_contrib-4.2.0源码压缩包 

opencv4.2.0 地址https://github.com/opencv/opencv/tree/4.2.0

opencv_contrib-4.2.0地址https://github.com/opencv/opencv_contrib

首先在终端中输入如下命令来安装依赖包:

  1. sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  2. sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
  3. sudo apt install build-essential qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenblas-base libopenblas-dev doxygen openjdk-8-jdk pylint libvtk6-dev

三、配置opencv

1、将opencv4.2.0和opencv_contrib-4.2.0解压(提取),放在一个文件夹opencv-4.2.0下,如下图所示:

c05e595eab8d4731bca71f1a97474376.png

 2、双击进入解压出来的opencv-4.2.0文件夹,右键打开终端(或者在别处打开终端,通过输入cd opencv-4.2.0进入当前目录下),然后依次输入(不要忘了第三行的最后的空格和两个点):

  1. mkdir build
  2. cd build

e93f4ba860f34a138fdecb1a5b492c0e.png​ 

3.然后进行cmake编译,参数可自行调整:

build目录内执行以下命令(注意contrib路径换成自己的):
下面的参数是带cuda和contrib扩展包的:

  1. cmake -D CMAKE_BUILD_TYPE=RELEASE \
  2. -D CMAKE_INSTALL_PREFIX=/usr/local \
  3. -D INSTALL_PYTHON_EXAMPLES=ON \
  4. -D INSTALL_C_EXAMPLES=ON \
  5. -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.2.0/modules \
  6. -D PYTHON3_EXECUTABLE=/usr/bin/python3 \
  7. -D PYTHON_EXECUTABLE=/usr/bin/python \
  8. -D WITH_TBB=ON \
  9. -D WITH_V4L=ON \
  10. -D WITH_QT=ON \
  11. -D WITH_GTK=ON \
  12. -D WITH_VTK=ON \
  13. -D WITH_OPENGL=ON \
  14. -D WITH_OPENMP=ON\
  15. -D BUILD_EXAMPLES=ON \
  16. -D WITH_CUDA=ON \
  17. -D BUILD_TIFF=ON \
  18. -D ENABLE_PRECOMPILED_HEADERS=OFF\
  19. -D INSTALL_PYTHON_EXAMPLES=ON \
  20. -D OPENCV_GENERATE_PKGCONFIG=ON \
  21. -DOPENCV_ENABLE_NONFREE=ON \
  22. -D CUDA_nppicom_LIBRARY=stdc++ \
  23. -D CUDA_ARCH_BIN="8.6" ..
  • CUDA_ARCH_BIN一般需要指定,且最好不要把所有版本都编译,如CUDA_ARCH_BIN="3.0 3.5 3.7 5.0 5.2 6.0 6.1 7.0 7.5 8.6"
    最好根据上面的说明,查一下当前显卡的型号,以及对应的显卡算力,然后在这里指定一个即可,如3060显卡可以保持 CUDA_ARCH_BIN="8.6"。否则全部编译一遍速度会很慢。

     3060显卡不加这条命令: -D CUDA_ARCH_BIN="8.6" ,会报错如下:

    1. nvcc fatal : Unsupported gpu architecture 'compute_30'
    2. CMake Error at cuda_compile_1_generated_gpu_mat.cu.o.RELEASE.cmake:222 (message):
    3. Error generating
    4. /home/cgm/opencv-4.2.0/opencv-4.2.0/build/modules/core/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_gpu_mat.cu.o

    原因: 我的3060显卡不支持compute_30的GPU构架

    GPUCompute Capability
    Geforce RTX 30608.6

    算力 CUDA GPUs - Compute Capability | NVIDIA Developer

     nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

    nvcc警告:“compute_35”、“compute_3 7”、“compute_50”、“sm_35”,“sm_37”和“sm_50”体系结构已弃用,可能会在将来的版本中删除(使用-Wno弃用的gpu目标来抑制警告)。

cuda 11已经废弃 compute_30了,所以需要把compute_30给去掉

 ​9d8db948257841aba4b164561a3a79e5.png

  •  CMAKE_INSTALL_PREFIX指定了编译好的库的目录,也就是说编译完成的OpenCV库文件会在该目录下
  • OPENCV_GENERATE_PKGCONFIG指定了生成pkgconfig配置文件,这个文件在后续创建OpenCV工程的时会很有用。
  • 如果没有  -D OPENCV_GENERATE_PKGCONFIG=ON ,后面查看配置时会找不到:
  1. $ pkg-config --cflags --libs opencv4
  2. Package opencv4 was not found in the pkg-config search path.
  3. Perhaps you should add the directory containing `opencv4.pc'
  4. to the PKG_CONFIG_PATH environment variable
  5. No package 'opencv4' found
  •   增加 这个命令  -DOPENCV_ENABLE_NONFREE=ON \  是为了不出现下面那这样的结果
  1. terminate called after throwing an instance of 'cv::Exception'
  2. what(): OpenCV(4.2.0) /home/cgm/opencv-4.2.0/opencv_contrib-4.2.0/modules/xfeatures2d/src/surf.cpp:1027: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

“此算法已获得专利,在此配置中被排除在外;”

“设置OPENCV_ENABLE_NONFREE CMake选项并重建库”);

7cfda0b962d547afb18be7d2feb912f5.png

3.编译成功

最后会列出其编译后的模块列表。

  1. -- OpenCV modules:
  2. -- To be built: aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hdf hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect optflow phase_unwrapping photo plot python2 python3 quality reg rgbd saliency sfm shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab viz xfeatures2d ximgproc xobjdetect xphoto
  3. -- Disabled: world
  4. -- Disabled by dependency: -
  5. -- Unavailable: cnn_3dobj java js matlab ovis
  6. -- Applications: tests perf_tests examples apps
  7. -- Documentation: NO
  8. -- Non-free algorithms: NO
  9. --
  10. -- GUI:
  11. -- QT: YES (ver 5.12.8)
  12. -- QT OpenGL support: YES (Qt5::OpenGL 5.12.8)
  13. -- GTK+: NO
  14. -- OpenGL support: YES (/usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libGLU.so)
  15. -- VTK support: YES (ver 7.1.1)
  16. --
  17. -- Media I/O:
  18. -- ZLib: /usr/lib/x86_64-linux-gnu/libz.so (ver 1.2.11)
  19. -- JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (ver 80)
  20. -- WEBP: /usr/lib/x86_64-linux-gnu/libwebp.so (ver encoder: 0x020e)
  21. -- PNG: /usr/lib/x86_64-linux-gnu/libpng.so (ver 1.6.37)
  22. -- TIFF: build (ver 42 - 4.0.10)
  23. -- JPEG 2000: build (ver 1.900.1)
  24. -- OpenEXR: build (ver 2.3.0)
  25. -- HDR: YES
  26. -- SUNRASTER: YES
  27. -- PXM: YES
  28. -- PFM: YES
  29. --
  30. -- Video I/O:
  31. -- DC1394: YES (2.2.5)
  32. -- FFMPEG: YES
  33. -- avcodec: YES (58.54.100)
  34. -- avformat: YES (58.29.100)
  35. -- avutil: YES (56.31.100)
  36. -- swscale: YES (5.5.100)
  37. -- avresample: YES (4.0.0)
  38. -- GStreamer: YES (1.16.3)
  39. -- v4l/v4l2: YES (linux/videodev2.h)
  40. --
  41. -- Parallel framework: TBB (ver 2020.1 interface 11101)
  42. --
  43. -- Trace: YES (with Intel ITT)
  44. --
  45. -- Other third-party libraries:
  46. -- Intel IPP: 2019.0.0 Gold [2019.0.0]
  47. -- at: /home/cgm/opencv-4.2.0/opencv-4.2.0/build/3rdparty/ippicv/ippicv_lnx/icv
  48. -- Intel IPP IW: sources (2019.0.0)
  49. -- at: /home/cgm/opencv-4.2.0/opencv-4.2.0/build/3rdparty/ippicv/ippicv_lnx/iw
  50. -- Lapack: NO
  51. -- Eigen: YES (ver 3.3.7)
  52. -- Custom HAL: NO
  53. -- Protobuf: build (3.5.1)
  54. --
  55. -- NVIDIA CUDA: YES (ver 11.4, CUFFT CUBLAS)
  56. -- NVIDIA GPU arch: 30 35 37 50 52 60 61 70 75
  57. -- NVIDIA PTX archs:
  58. --
  59. -- cuDNN: NO
  60. --
  61. -- OpenCL: YES (no extra features)
  62. -- Include path: /home/cgm/opencv-4.2.0/opencv-4.2.0/3rdparty/include/opencl/1.2
  63. -- Link libraries: Dynamic load
  64. --
  65. -- Python 2:
  66. -- Interpreter: /usr/bin/python (ver 2.7.18)
  67. -- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.18)
  68. -- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.16.5)
  69. -- install path: lib/python2.7/dist-packages/cv2/python-2.7
  70. --
  71. -- Python 3:
  72. -- Interpreter: /usr/bin/python3 (ver 3.8.10)
  73. -- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.8.so (ver 3.8.10)
  74. -- numpy: /home/cgm/.local/lib/python3.8/site-packages/numpy/core/include (ver 1.23.3)
  75. -- install path: lib/python3.8/dist-packages/cv2/python-3.8
  76. --
  77. -- Python (for build): /usr/bin/python
  78. -- Pylint: /usr/bin/pylint (ver: 3.8.10, checks: 163)
  79. --
  80. -- Java:
  81. -- ant: NO
  82. -- JNI: /usr/lib/jvm/java-8-openjdk-amd64/include /usr/lib/jvm/java-8-openjdk-amd64/include/linux /usr/lib/jvm/java-8-openjdk-amd64/include
  83. -- Java wrappers: NO
  84. -- Java tests: NO
  85. --
  86. -- Install to: /usr/local
  87. -- -----------------------------------------------------------------
  88. --
  89. -- Configuring done
  90. -- Generating done
  91. -- Build files have been written to: /home/cgm/opencv-4.2.0/opencv-4.2.0/build

 我们可以发现,我们编译已经成功,可以进行下一步,即make,但是值得注意的是,如果用多核make可能会报错

sudo make -j6

j6表示6核运行,查看自己 CPU 的核数:

  1. # uniq 可以去重连续出现的相同记录
  2. cat /proc/cpuinfo | grep "cpu cores" | uniq

报错:

023f7884952b4331bdd70c421b123d79.png

 In file included from /home/cgm/opencv-4.2.0/opencv-4.2.0/modules/python/src2/cv2.cpp:35:
/home/cgm/opencv-4.2.0/opencv-4.2.0/build/modules/python_bindings_generator/pyopencv_generated_include.h:44:10: fatal error: opencv2/viz/types.hpp: 没有那个文件或目录
   44 | #include "opencv2/viz/types.hpp"

原因:仔细分析发现这个文件是 /home/cgm/opencv-4.2.0/opencv-4.2.0/modules/python/src2/cv2.cpp第35行包含了一个头文件 #include "pyopencv_generated_include.h"

然后搜索打开这个头文件 pyopencv_generated_include.h发现第44行就是出错没有找到的那个头文件#include "opencv2/viz/types.hpp"

然后make时在 opencv-4.2.0 里没有找到这个头文件,确实也没有,我搜索后发现这个文件在opencv_contrib-4.2.0里面.

/home/cgm/opencv-4.2.0/opencv_contrib-4.2.0/modules/viz/src
 6ac71b38d36049c68b503795c9c8e0dc.png

解决办法: 将/home/cgm/opencv-4.2.0/opencv_contrib-4.2.0/modules/viz/include/opencv2/viz 添加进 /home/cgm/opencv-4.2.0/opencv-4.2.0/modules/python 的 CMakeLists.txt 里面.

include_directories("/home/cgm/opencv-4.2.0/opencv_contrib-4.2.0/modules/viz/include/opencv2/viz")

71ac46dd1c494355a815d8c2bc1c4d5f.png

再重新cmake和make..........

5b8bdf9ec0174040b1c64847441c8897.png

4.安装

sudo make install

5.安装完成后还要配置环境变量

终端输入或用gedit(替换vim)打开:

sudo gedit /etc/ld.so.conf.d/opencv.conf

在里面添加:

/usr/local/lib

73319f72a7a34a069c00ca5638859ab2.png保存退出,配置库:这里报错参考 sudo ldconfig报错

sudo ldconfig

38a438496818418184ef1f05245fe314.png

添加修改环境变量

sudo gedit ~/.bashrc

在末尾添加如下内容

  1. #opencv4.2.0环境变量
  2. export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

保存退出,最后source一下,让更改立即生效:

source ~/.bashrc

因为,对于OpenCV4以上的版本要使用OpenCV4才能正确查询到其版本,库以及头文件目录的值。具体命令如下所示:

  1. pkg-config --modversion opencv4
  2. pkg-config --cflags opencv4
  3. pkg-config --libs opencv4

注意:opencv4以上才是pkg-config --cflags --libs opencv4,之前版本是pkg-config --cflags --libs opencv

四.运行测试

我安装这个的目的暂时是为了运行 SIFT,SURE,FREAK特征提取算法.

你们可以去测试自己的.

335dd272a5e443728761d87696fb18d6.png

五.2023年3月17日遇到的问题记录

今天运行orb slam2,发现运行不了了

报错:make[2]: *** 没有规则可制作目标“/usr/lib/libOpenNI.so”,由“../lib/libORB_SSLAM2.so" 需求。停止。

解决:

sudo apt-get install libopenni-dev libopenni2-dev 

 在编译时Cmake警告:

  1. CMake Warning at CMakeLists.txt:123 (add_executable):
  2. Cannot generate a safe runtime search path for target mono_euroc because
  3. files in some directories may conflict with libraries in implicit
  4. directories:
  5. runtime library [libopencv_stitching.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  6. /usr/local/lib
  7. runtime library [libopencv_aruco.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  8. /usr/local/lib
  9. runtime library [libopencv_bgsegm.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  10. /usr/local/lib
  11. runtime library [libopencv_bioinspired.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  12. /usr/local/lib
  13. runtime library [libopencv_ccalib.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  14. /usr/local/lib
  15. runtime library [libopencv_dnn_objdetect.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  16. /usr/local/lib
  17. runtime library [libopencv_dnn_superres.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  18. /usr/local/lib
  19. runtime library [libopencv_dpm.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  20. /usr/local/lib
  21. runtime library [libopencv_highgui.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  22. /usr/local/lib
  23. runtime library [libopencv_face.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  24. /usr/local/lib
  25. runtime library [libopencv_freetype.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  26. /usr/local/lib
  27. runtime library [libopencv_fuzzy.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  28. /usr/local/lib
  29. runtime library [libopencv_hdf.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  30. /usr/local/lib
  31. runtime library [libopencv_hfs.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  32. /usr/local/lib
  33. runtime library [libopencv_img_hash.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  34. /usr/local/lib
  35. runtime library [libopencv_line_descriptor.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  36. /usr/local/lib
  37. runtime library [libopencv_quality.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  38. /usr/local/lib
  39. runtime library [libopencv_reg.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  40. /usr/local/lib
  41. runtime library [libopencv_rgbd.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  42. /usr/local/lib
  43. runtime library [libopencv_saliency.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  44. /usr/local/lib
  45. runtime library [libopencv_shape.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  46. /usr/local/lib
  47. runtime library [libopencv_stereo.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  48. /usr/local/lib
  49. runtime library [libopencv_structured_light.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  50. /usr/local/lib
  51. runtime library [libopencv_phase_unwrapping.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  52. /usr/local/lib
  53. runtime library [libopencv_superres.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  54. /usr/local/lib
  55. runtime library [libopencv_optflow.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  56. /usr/local/lib
  57. runtime library [libopencv_surface_matching.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  58. /usr/local/lib
  59. runtime library [libopencv_tracking.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  60. /usr/local/lib
  61. runtime library [libopencv_datasets.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  62. /usr/local/lib
  63. runtime library [libopencv_plot.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  64. /usr/local/lib
  65. runtime library [libopencv_text.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  66. /usr/local/lib
  67. runtime library [libopencv_dnn.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  68. /usr/local/lib
  69. runtime library [libopencv_ml.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  70. /usr/local/lib
  71. runtime library [libopencv_videostab.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  72. /usr/local/lib
  73. runtime library [libopencv_videoio.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  74. /usr/local/lib
  75. runtime library [libopencv_viz.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  76. /usr/local/lib
  77. runtime library [libopencv_ximgproc.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  78. /usr/local/lib
  79. runtime library [libopencv_video.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  80. /usr/local/lib
  81. runtime library [libopencv_xobjdetect.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  82. /usr/local/lib
  83. runtime library [libopencv_imgcodecs.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  84. /usr/local/lib
  85. runtime library [libopencv_objdetect.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  86. /usr/local/lib
  87. runtime library [libopencv_calib3d.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  88. /usr/local/lib
  89. runtime library [libopencv_features2d.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  90. /usr/local/lib
  91. runtime library [libopencv_flann.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  92. /usr/local/lib
  93. runtime library [libopencv_xphoto.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  94. /usr/local/lib
  95. runtime library [libopencv_photo.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  96. /usr/local/lib
  97. runtime library [libopencv_imgproc.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  98. /usr/local/lib
  99. runtime library [libopencv_core.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  100. /usr/local/lib
  101. Some of these libraries may not be found correctly.

CMakeLists.txt里是这样的

  1. find_package(OpenCV QUIET)
  2. if(NOT OpenCV_FOUND)
  3. find_package(OpenCV 2.4.3 QUIET)
  4. if(NOT OpenCV_FOUND)
  5. message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
  6. endif()
  7. endif()

增加一些message命令查看OpenCV的信息

  1. # If the package has been found, several variables will
  2. # be set, you can find the full list with descriptions
  3. # in the OpenCVConfig.cmake file.
  4. # Print some message showing some of them
  5. message(STATUS "OpenCV library status:")
  6. message(STATUS " config: ${OpenCV_DIR}")
  7. message(STATUS " version: ${OpenCV_VERSION}")
  8. message(STATUS " libraries: ${OpenCV_LIBS}")
  9. message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")

 OpenCV_DIR /usr/lib/x86_64-linux-gnu/cmake/opencv4,并且有警告信息

解决:

设置OpenCV_DIR的路径,重新编译运行./build.sh

SET(OpenCV_DIR /usr/local/lib/cmake/opencv4/)   # 设置OpenCV_DIR
  1. SET(OpenCV_DIR /usr/local/lib/cmake/opencv4/) # 设置OpenCV_DIR
  2. find_package(OpenCV QUIET)
  3. if(NOT OpenCV_FOUND)
  4. find_package(OpenCV 2.4.3 QUIET)
  5. if(NOT OpenCV_FOUND)
  6. message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
  7. endif()
  8. endif()
  9. # If the package has been found, several variables will
  10. # be set, you can find the full list with descriptions
  11. # in the OpenCVConfig.cmake file.
  12. # Print some message showing some of them
  13. message(STATUS "OpenCV library status:")
  14. message(STATUS " config: ${OpenCV_DIR}")
  15. message(STATUS " version: ${OpenCV_VERSION}")
  16. message(STATUS " libraries: ${OpenCV_LIBS}")
  17. message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")

 

 

 

TO BE CONTINUED...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/971496
推荐阅读
相关标签
  

闽ICP备14008679号