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

4 篇文章 1 订阅

(2019-10-14更新,支持直接安装python版本)

1 安装前准备

1.1 安装依赖

  • 安装cmake(编译器)和依赖库
$ 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
# 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文件解压到当前目录
$ unzip opencv-4.0.0.zip -d .
  1. 进入解压后的文件夹
$ cd opencv-4.0.0/
  1. 创建一个编译文件夹build,并进入。
$ mkdir build
$ cd build/
  1. cmake一下
    这里我修改了安装路径为/usr/local/opencv4,可以自己修改到自己需要的位置,如果该命令中不加-D CMAKE_INSTALL_PREFIX=/usr/local/opencv4,则默认各部分分别安装在/usr/local/目录的include/ bin/ lib/3个文件夹下.
$ 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:

--   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编译,需要很久,静静等待。
$ make -j6 	# runs 6 jobs in parallel
  1. 进行make install安装
$ sudo make install

安装完成

3 OpenCV配置环境

3.1 pkg-config环境

配置OpenCV 的 pgk-config环境

  1. 找到opencv4.pc文件所在目录:
$ 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
$ sudo vim /etc/profile.d/pkgconfig.sh

在文件中加入下面一行:

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

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

$source /etc/profile
  1. 验证是否配置成功:
$ 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的路径。

$ sudo vim /etc/ld.so.conf.d/opencv4.conf

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

/usr/local/opencv4/lib

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

$ sudo ldconfig

3.3 python-opencv环境

找到编译好的python cv库:

$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解释器中:
$ 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解释器中:
$ 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目录下,查看当前目录内容:

$ 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文件进行修改:

$ vim Makefile

修改后的内容为:

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

$ 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:

$ ./opencv_example

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

4.2 通过Cmake测试

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

set(OpenCV_DIR /usr/local/opencv4/lib/cmake/opencv4)

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

修改后,执行命令:

$ mkdir build && cd build
$ cmake ..
$ make
$ ./opencv_example

4.3 python-opencv测试

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

$ 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
  • 86
    点赞
  • 533
    收藏
    觉得还不错? 一键收藏
  • 105
    评论
评论 105
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值