这篇文章是对我上一篇文章的一些改进,基本也是参考上一篇树莓派安装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,重点如下图:
以后安装软件的命令基本都可以用 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
安装视频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 ..
下边开始正式编译过程,这一步过程根据电脑处理器情况不同而不同!
sudo make
下边进行编译安装
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
如果出现以下错误:
可以按照这个方法来尝试一下解决:
sudo aptitude install python-opencv
参考网址:https://blog.csdn.net/mieleizhi0522/article/details/79123638,
如果出现 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,大家共同交流。