前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 18.04安装OpenCV4.0和环境配置

Ubuntu 18.04安装OpenCV4.0和环境配置

作者头像
zhangrelay
发布2019-11-27 22:58:16
3.8K0
发布2019-11-27 22:58:16
举报

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/new_delete_/article/details/84797041

1 安装前准备

1.1 安装依赖

  • 安装cmake(编译器)和依赖库
代码语言:javascript
复制
$ sudo apt-get install cmake #如果已经安装过cmake,则该步骤省略
$ sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
  • 支持python
代码语言:javascript
复制
# python3支持
$ sudo apt install python3-dev python3-numpy
# streamer支持
$ sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# 可选的依赖
$ sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev

1.2 下载源文件

可以在官网下载相应版本的OpenCV,主要有SourceGitHub方式下载。

Sources源文件: 因为官方版本是git上的,有时候可能出现下载失败的情况,所有我将官网下载的源文件分享到百度网盘链接https://pan.baidu.com/s/1Bu4xOiz8zWU_R8Me0T_SIg,提取码:s4sy。

或者通过 GitHub进行下载。

2 安装过程

  1. 将zip文件解压到当前目录
代码语言:javascript
复制
$ unzip opencv-4.0.0.zip -d .
  1. 进入解压后的文件夹
代码语言:javascript
复制
$ cd opencv-4.0.0/
  1. 创建一个编译文件夹build,并进入。
代码语言:javascript
复制
$ mkdir build
$ cd build/
  1. cmake一下 这里我修改了安装路径为/usr/local/opencv4,可以自己修改到自己需要的位置,如果该命令中不加-D CMAKE_INSTALL_PREFIX=/usr/local/opencv4,则默认各部分分别安装在/usr/local/目录的include/ bin/ lib/3个文件夹下.
代码语言:javascript
复制
$ cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 ..

命令说明:

  • -D OPENCV_GENERATE_PKGCONFIG=YESOpenCV4以上版本默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能。
  • -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4:指定安装目录。

这里cmake命令执行会下载ippicv,需要等待比较长时间才能下载完成。

该cmake命令的结果里可以查看是否支持Python:

代码语言:javascript
复制
--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages
--
--   Python 3:
--     Interpreter:                 /usr/bin/python3.4 (ver 3.4.3)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python3.4/dist-packages

表明已经建立了Python绑定。(如果只选择了python3,则该输出结果里只有python3部分)

  1. 进行make编译,需要很久,静静等待。
代码语言:javascript
复制
$ make -j6 	# runs 6 jobs in parallel
  1. 进行make install安装
代码语言:javascript
复制
$ sudo make install

安装完成

3 OpenCV配置环境

3.1 pkg-config环境

配置OpenCV 的 pgk-config环境

  1. 找到opencv4.pc文件:
代码语言:javascript
复制
$ sudo find / -iname opencv4.pc
[sudo] password for ywq: 
/usr/local/opencv4/lib/pkgconfig/opencv4.pc
find: ‘/run/user/1000/gvfs’: Permission denied
/home/ywq/Downloads/OpenCV/opencv-4.0.0/build/unix-install/opencv4.pc
  1. /usr/local/opencv4/lib/pkgconfig/路径加入PKG_CONFIG_PATH
代码语言:javascript
复制
$ sudo vim /etc/profile.d/pkgconfig.sh

在文件中加入下面一行:

代码语言:javascript
复制
export PKG_CONFIG_PATH=/usr/local/opencv4/lib/pkgconfig:$PKG_CONFIG_PATH

保存退出后,使用命令激活:

代码语言:javascript
复制
$source /etc/profile
  1. 验证是否配置成功:
代码语言:javascript
复制
$ pkg-config --libs opencv4
-L/usr/local/opencv4/lib -lopencv_ml -lopencv_dnn -lopencv_video -lopencv_stitching -lopencv_objdetect -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_flann -lopencv_photo -lopencv_gapi -lopencv_imgproc -lopencv_core

3.2 编译环境

配置OpenCV编译环境——加载动态库so库的路径。

代码语言:javascript
复制
$ sudo vim /etc/ld.so.conf.d/opencv4.conf

在该文件(可能是空文件)末尾加上:

代码语言:javascript
复制
/usr/local/opencv4/lib

再执行以下命令使刚才配置的路径生效:

代码语言:javascript
复制
$ sudo ldconfig

3.3 python-opencv环境

找到编译好的python cv库:

代码语言:javascript
复制
$sudo find / -iname cv2*.so
/home/ywq/Downloads/opencv-4.1.1/build/lib/python3/cv2.cpython-35m-x86_64-linux-gnu.so
/usr/local/opencv4/lib/python3.5/dist-packages/cv2/python-3.5/cv2.cpython-35m-x86_64-linux-gnu.so

cv2.cpython-35m-x86_64-linux-gnu.so就是编译好的python3的opencv库,我们把它复制到对应python解释器的/path/to/dist-packages/(系统自带的python解释器)和/path/to/site-packages(用户安装的python解释器)目录下,之后就能在该python解释器中使用python-opencv库。

  • 链接到系统自带的python3解释器中:
代码语言:javascript
复制
$ sudo ln -s /usr/local/opencv4/lib/python3.5/dist-packages/cv2/python-3.5/cv2.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/cv2.so
  • 链接到Anaconda创建的虚拟环境python3解释器中:
代码语言:javascript
复制
$ ln -s /usr/local/opencv4/lib/python3.5/dist-packages/cv2/python-3.5/cv2.cpython-35m-x86_64-linux-gnu.so ~/anaconda3/lib/python3.7/site-packages/cv2.so

4 测试OpenCV

环境配置完成,对我们安装的OpenCV进行测试:

cd 到/opencv-4.0.0/samples/cpp/example_cmake目录下,查看当前目录内容:

代码语言:javascript
复制
$ ls -l
total 12
-rw-rw-r-- 1 ywq ywq 1016 11月 18  2018 CMakeLists.txt
-rw-rw-r-- 1 ywq ywq 1119 11月 18  2018 example.cpp
-rw-rw-r-- 1 ywq ywq  294 7月  30 15:31 Makefile

有两种方式进行测试:

4.1 通过Makefile测试

因为OpenCV 4.0需要C++11支持,且生成的pkg-config文件名为opencv4.pc,所以需要对当前目录下的Malefile文件进行修改:

代码语言:javascript
复制
$ vim Makefile

修改后的内容为:

代码语言:javascript
复制
CXX ?= g++
 
CXXFLAGS += -c -std=c++11 -Wall $(shell pkg-config --cflags opencv4)
LDFLAGS += $(shell pkg-config --libs --static opencv4)

all: opencv_example

opencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)

%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)

clean: ; rm -f example.o opencv_example

执行make命令生成可执行文件opencv_example

代码语言:javascript
复制
$ make
g++ example.cpp -o example.o -c -std=c++11 -Wall -I/usr/local/opencv4/include/opencv4/opencv -I/usr/local/opencv4/include/opencv4
g++ example.o -o opencv_example -L/usr/local/opencv4/lib -lopencv_ml -lopencv_dnn -lopencv_video -lopencv_stitching -lopencv_objdetect -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_flann -lopencv_photo -lopencv_gapi -lopencv_imgproc -lopencv_core -ldl -lm -lpthread -lrt

运行生成的文件opencv_example:

代码语言:javascript
复制
$ ./opencv_example

电脑打开摄像头,配置成功。

4.2 通过Cmake测试

因为我们更改了opencv的安装路径(/usr/local/opencv4),所以测试前我们需要在CMakeLists.txt文件的14行find_package(OpenCV REQUIRED)前面加上

代码语言:javascript
复制
set(OpenCV_DIR /usr/local/opencv4/lib/cmake/opencv4)

否则执行$ cmake .命令时会报错:

修改后,执行命令:

代码语言:javascript
复制
$ mkdir build && cd build
$ cmake ..
$ make
$ ./opencv_example

4.3 python-opencv测试

前面已经将Python-opencv库链接到系统自带python3中,所以简单的测试如下:

代码语言:javascript
复制
$ python3
Python 3.5.2 (default, Oct  8 2019, 13:06:37) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2 as cv
>>> print(cv.__version__)
4.1.1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 安装前准备
    • 1.1 安装依赖
      • 1.2 下载源文件
      • 2 安装过程
      • 3 OpenCV配置环境
        • 3.1 pkg-config环境
          • 3.2 编译环境
            • 3.3 python-opencv环境
            • 4 测试OpenCV
              • 4.1 通过Makefile测试
                • 4.2 通过Cmake测试
                  • 4.3 python-opencv测试
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档