跳过正文
  1. Index/

Linux下opencv环境搭建

·201 字·1 分钟
Einsam
作者
Einsam
A little bit about you

Linux下opencv环境搭建
#

1. 安装
#

  • opencv官网

    下载源码sources包

    • 选择版本4.2.0

    • 解压

      unzip opencv-4.2.0.zip
      cd opencv-4.2.0
      mkdir build
      cd build
      
    • 生成cmake编译信息

      cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
      

      解释一下各个参数

      CMAKE_BUILD_TYPE=Release\Debug
      

      分为发布和调试两种

      CMAKE_INSTALL_PREFIX
      

      是安装位置

      ..
      

      为从上级文件夹获取

    • 编译

      make -j7 #使用7核心进行编译
      
    • 安装

      sudo make install
      

      2. 配置
      #

      /etc/ld.so.conf.d/
      

      文件夹下新建一个opencv4.conf, 里边

      写入

      /usr/local/lib
      
cd /etc/ld.so.conf.d/
sudo touch opencv4.conf #3.4.9版本就新建opencv3.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf #opencv3就一样替换

更新pkg-config: pkg-config使用来扫描opencv的存在的

sudo ldconfig

复制pc文件,要不然测试提示错误:you should add the directory containing opencv.pc

sudo cp -f /usr/local/lib/pkgconfig/opencv4.pc /usr/lib/pkgconfig/ #opencv4
sudo cp -f /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig/ #opencv

前面复制的路径,我自己的与我看到的教程中并不同,每个/usr/local/lib里都找一下能找到就行 后面的路径是pkg-config自动搜索的路径 引用freedestop

This variable is used to augment pkg-config's search path. On a typical Unix system, it will search in the directories /usr/lib/pkgconfig and /usr/share/pkgconfig. This will usually cover system installed modules. However, some local modules may be installed in a different prefix such as /usr/local. In that case, it's necessary to prepend the search path so that pkg-config can locate the .pc files.

测试:

pkg-config --libs opencv4 
pkg-config --cflags opencv4
pkg-config --modversion opencv4 # 查看版本号

opencv3就将opencv4替换为opencv

添加环境变量是不用的, 这个是用来在编译时候指定Opencv版本用, 有的教程里有这部分,没必要:

    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig
    export PKG_CONFIG_PATH

3. 卸载
#

删掉opencv4.conf文件,然后在编译的build文件下运行

sudo make uinstall

以上是Linux通用的编译方法, 但是对Arch系Linux不需要这么麻烦, 直接用源上编译好的即可:

sudo pacman -S opencv

依赖

sudo pacman -S opencv-samples  qt5-base  vtk

如果使用的是编译版本, 只需要指定opencv编译位置PATH_TO_BUILD : set(OpenCV_DIR PATH_TO_BUILD),我的CMakeLists.txt是:

手动指定
如果使用Arch社区仓库的OPencv4, 可以显式指定opencv版本find_package(OpenCV 4 REQUIRED ).
显式指定