(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)

这篇文章是对我上一篇文章的一些改进,基本也是参考上一篇树莓派安装opencv3来的,

网址:树莓派源码方式安装opencv3

另外一篇比较好的安装opencv3的文章:https://blog.csdn.net/leaves_joe/article/details/67656340

树莓派如果不想自己安装,可以直接下载我安装完成的系统来用,网址如下:

https://blog.csdn.net/Fighting_Boom/article/details/87969477


安装环境

win10,VM14虚拟机,Ubuntu14.04LTS。

其他版本Ubuntu系统基本通用。


安装过程

重要提示:

1建议安装之前把虚拟机备份一下,防止意外发生!

2. 以下所有的安装命令最好一个一个来安装,如果一次安装好几个包,则有可能这些包之间有依赖,导致安装失败。

3. 当安装某一个包时,遇到此包依赖另外一个,但是他将不会被安装之类的问题时,可以使用aptitude代替apt-get来安装。

// 用此命令来安装 aptitude
sudo apt-get install aptitude

依赖关系未满足参考文章:https://blog.csdn.net/qq_36396104/article/details/79748458,重点如下图:

(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第1张图片

以后安装软件的命令基本都可以用 aptitude 来完成,一定要注意不要和 apt-get 混着使用,否则 apt-get 安装的依赖包 aptitude 是不知道的,这样在处理一些依赖问题的时候就会比较麻烦。

安装步骤:

Linux一些常规操作

// 软件源更新
sudo aptitude update

// 软件列表更新
sudo aptitude upgrade

安装构建opencv的一些相关工具

// 可以一起安装,出现错误的话,就一个一个来
sudo aptitude install build-essential

sudo aptitude install cmake

sudo aptitude install git

sudo aptitude install pkg-config

 

安装常用图像工具包

// 安装jpeg格式图像工具包
sudo aptitude install libjpeg8-dev

// 安装tif格式图像工具包
sudo aptitude install libtiff5-dev

// 安装jasper图像工具包
sudo aptitude install libjasper-dev

// 安装png图像工具包
sudo aptitude install libpng12-dev
  • 如果出现类似问题,就不接受未安装的,接受降级的!

(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第2张图片

安装视频I/O包,注意最后一个包的数字“4”后边是字母“L”的小写! 

sudo aptitude install libavcodec-dev 

sudo aptitude install libavformat-dev 

sudo aptitude install libswscale-dev 

sudo aptitude install libv4l-dev

安装 gtk2.0 ,这一步的软件源,最好换成国内源。

// 这一步我在安装的时候也会遇到依赖包的问题,参考之前的解决方法,不接受未安装的,接受降级的!!!
sudo aptitude install libgtk2.0-dev

安装优化函数包

// 可以一块安装,出问题的话就一个一个安装。
sudo aptitude install libatlas-base-dev

sudo aptitude install gfortran

如果要在Python中使用opencv,则还需要安装Python的开发包

// Python2的开发包
sudo aptitude install python-dev

// Python3的开发包
sudo aptitude install python3-dev

到这里opencv3的依赖包基本都装完了,然后要开始opencv源代码的编译。在用wget下载的时候,记得要存放到用户目录下,做法就是提前进入要保存安装包的路劲,然后会直接下载到当前路径下,(源码要放在有执行权限的位置,不是安装位置)。

/**
* 引用参考文章的内容: 
* 使用wget下载OpenCV源码,觉得慢的话可以到https://github.com/opencv/opencv/releases下载OpenCV的源代码
* tar.gz格式,需要解压好,放到用户目录下
* 但是OpenCV_contrib请大家使用wget,亲测直接到Github下载zip文件的话,会有编译问题
**/

// 下载OpenCV
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip

// 解压OpenCV
unzip opencv-3.4.3.zip

// 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip

// 解压OpenCV_contrib库:
unzip opencv_contrib-3.4.3.zip

找到下载的文件夹,进入到解压后的opencv-3.4.3文件夹

cd opencv-3.4.3

之后新建一个release文件夹,用来存放cmake编译时产生的临时文件

// 新建release文件夹
sudo mkdir release

// 进入release文件夹
cd release

设置cmake编译参数,注意下边这行的路径一定要对应到自己的文件夹路径!
    -D OPENCV_EXTRA_MODULES_PATH=/home/zhaochen/zhaochen/soft/opencv_contrib-3.4.3/modules \

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=/home/zhaochen/zhaochen/soft/opencv_contrib-3.4.3/modules \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D BUILD_EXAMPLES=ON ..

(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第3张图片

  • 成功标志:

下边开始正式编译过程,这一步过程根据电脑处理器情况不同而不同!

sudo make
  • 安装完成

                         (Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第4张图片

下边进行编译安装

sudo make install

然后更新动态链接库

sudo ldconfig

到这里opencv就安装完成了!下边是一些测试环节。


测试环节

1. 查看当前安装opencv版本号

pkg-config opencv --modversion

2. 用参考文章的这个测试例程

# -*- coding:utf-8 -*-
import cv2
import numpy as np
cv2.namedWindow("gray")
img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像
cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线
cv2.imshow("gray",img)#显示图像
#循环等待,按q键退出
while True:
	key=cv2.waitKey(1)
	if key==ord("q"):
		break
cv2.destoryWindow("gray")

3. 直接在终端下测试

// 首先在Python2下测试
// 进到Python2环境中
python
// 导入头文件,看是否报错,什么都没有就说明成功了。
import cv2


// 接着可以进入Python3环境中
python3

// 同样导入头文件,看是否报错,什么都没有就说明成功了。
import cv2

如果出现以下错误:

(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第5张图片

可以按照这个方法来尝试一下解决:

sudo aptitude install python-opencv

参考网址:https://blog.csdn.net/mieleizhi0522/article/details/79123638,

(Linux通用)Ubuntu源码方式安装Opencv3(基于3.4.3)_第6张图片

如果出现  ImportError: dynamic module does not define init function (PyInit_cv2)这种错误,

可以参考这篇文章:https://www.cnblogs.com/freshmen/p/7272393.html,但是不是很全。


问题总结

1. 原来用 apt-get 安装,总是出现各种依赖关系不满足,后来全部都用 aptitude 安装,这种问题少了很多。

2. 我的 opencv3 安装在Ubuntu14.04之后,Python2,import cv2 没问题,但是 Python3,import cv2,就各种出错。到现在还没解决。

3. 此文章基本还是参考安装树莓派的教程还有另外一篇大神教程来的,只不过又更新了一下版本,记录了一下经验。

4. 有错误的地方,还望大家指正出来。大家共同学习!

5. 有问题可以在下方评论,或者加我QQ:1446227671,大家共同交流。

你可能感兴趣的:(Linux/Ubuntu)