ubuntu环境安装opencv与python-opencv

opencv介绍

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。

它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

该库也有大量的Python、Java 和 MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。

opencv安装

本安装步骤是基于Ubuntu环境下进行

Step1. 安装依赖库

用户据自己的情况选择,如果不知道自己安装了那些依赖,就都输入一遍,如果已经安装系统会自动跳过,不会重复安装

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
依赖 说明
build-essential 安装了该软件包,编译c/c++ 所需要的软件包也都会被安装。如果想在Ubuntu中编译c/c++程序,只需要安装该软件包就可以了
cmake CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程),并输出各种各样的makefile或者project文件
git 版本管理工具
libgtk2.0-dev GTK工具包的开发库
pkg-config 用于列举出某个库的相关信息,比如此库的路径、相关头文件路径等,这在程序编译时将非常有用
libavcodec-dev 提供通用编码/解码框架,包含用于音频,视频和字幕流的多个解码器和编码器,以及多个比特流过滤器
libavformat-dev 为音频,视频和字幕流的多路复用和多路分解(多路复用和多路分解)提供了通用框架。它包含多媒体容器格式的多路复用器和分路器
libswscale-dev 执行高度优化的图像缩放以及色彩空间和像素格式转换操作
python-dev python的开发包,其中包括了一些用C/Java/C#等编写的python扩展在编译的时候依赖的头文件等信息
python-numpy NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵
libtbb2 线程构建块 (Intel TBB),用于并行编程的基于 C++ 语言的框架
libjasper-dev 用于编码和处理图像的软件的集合。该软件可以处理各种格式的图像数据
libdc1394-22-dev IEEE1394数码相机的高级编程接口

Step2. 下载opencv

下载最新版本的opencv并解压

https://github.com/opencv/opencv/archive/3.4.5.zip

Step3. 编译opencv

编译比较消耗内存,且花时间较长,请在1G以上的主机上进行代码编译

cd ~/opencv-3.4.5  # 进入opencv文件夹
mkdir build 
cd build 

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
make -j7 # 多线程执行make任务

sudo make install

apt方式安装

只用一行命令搞定

sudo apt-get install libcv-dev

Python 接口安装

可以直接通过pip来进行安装

sudo  pip3 install opencv-python

安装验证

import cv2 as cv
print(cv.__version__)

如果可以正常输出版本号,则说明安装成功

展开剩余53%