本人这是第二次接触Linux,第一次用的Linux的时候是用的Ubuntu的优麒麟,然后我弄的贼痛苦,更新的时候真是要把我气到吐血,换了不知道多少源,用了多少方法都没用。这一次用的是Ubuntu LTS 16.04,发现还挺好用的,比之前的好用的多了。本来很高兴,因为我在我的树莓派上装了个Ubuntu Mata,一下子就给它配好了系统,然而,我在我电脑上的Ubuntu用同样的方法却完全不行,真是气煞我也,烦了我一天。咳,吐槽完了舒服多了,接下来就是配置OpenCV了,给我以后留一条后路,也为后人提供点宝贵的经验。
我参考了很多前辈的博客,以及官方的文档,才成功配置好我的OpenCV环境。
作者电脑Linux系统: Ubuntu LTS 16.04
作者树莓派系统:Ubuntu Mate 16.04
第一步:安装OpenCV依赖
1。 更新软件源以及升级安装包(电脑与树莓派通用)
sudo apt-get update
sudo apt-get upgrade
树莓派单独升级
sudo rpi-update
注:此处作者在给自己的树莓派升级后,后面在gtk2.0时,需要降级,后面有详细的教程,教你降级,哈哈。
2。 安装OpenCV需要的包
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
注:此处安装了 libgtk2.0,如果安装不成功,很可能就是要降级处理,那么可以把libgtk2.0在上面的第二行命令行代码删除,然后重新装一次。那么怎么降级了,看下面。
//输入这个,降级处理
sudo aptitude install libgtk2.0-dev
按回车以后呢,首先会出现一个Accept this solution?选择N,回车。后面又会出现多个Accept this solution?都选Y。然后你就会发现你安装成功了。惊不惊喜,意不意外?啊哈哈。由于作者已经安装好了,然后忘记截图了,不好意思,不好意思,唉,我不是个合格的作者。
第二步:下载opencv3.4.1以及opencv-contrib-3.4.1并解压
//下载opencv
wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
//下载对应的contrib库
wget -O opencv_contrib-3.4.1.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
//解压
unzip opencv-3.4.1.zip
unzip opencv_contrib-3.4.1.zip
注:opencv与其contrib库一定要对应,下载方法也挺多的,也可以直接在github上下载,这里我就不多说了。
第三步:编译安装
首先,opencv解压以后,我这里解压完以后文件夹的名字为opencv-3.4.1,不同的下载方式有可能文件夹名称不同,反正你按我这个来,就是我提到的名字了。
我们要做的就是进入该文件夹,并在该文件夹中建立一个新的文件夹来放置编译产生的各种文件。
//进入opencv解压后的文件夹
cd opencv-3.4.1
//新建一个文件夹
midir build
//进入新建的文件夹
cd build
接着,配置编译参数。
//用了这些参数,能同时给python2与python3配置好OpenCV
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/home/dru2sky/opencv/opencv_contrib-3.4.1/modules -D BUILD_DOCS=ON -D BUILD_EXAMPLES=ON -D PYTHON2_EXECUTABLE=/usr/bin/python2 -D PYTHON2_INCLUDE_DIR=/usr/include/python2.7 -D PYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so -D PYTHON2_NUMPY_INCLUDE_DIRS=/usr/local/lib/python2.7/distpackages/numpy/core/include/ -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D PYTHON3_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/distpackages/numpy/core/include/ -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_OPENGL=ON ..
配置好编译参数以后,就可以开始编译了。
//开始编译
sudo make -j4
我电脑和树莓派都是4核的,所以后面加了个-j4,这样的话会快一点,当然树莓派用了这个还是挺慢的。我电脑大概用了,20分钟左右,树莓派几个小时。
接着
//安装
sudo make install
//更新动态链接库
sudo make ldconfig
哈哈,终于结束了,恭喜你。我们接下来要做的就是测试是否配置好了。让我们在终端中输入
python
然后我们会进入python2.7的环境,如果跟下面所示显示一样,就说明python2.7环境下的OepnCV配置好了。
>>>import cv2
>>>
然后我们可以输入exit()推出python2.7环境,或者直接Ctrl+D。
接着在终端中输入python3,按照上面的方法,如果情况一样,说明也配置好了。那么恭喜你,你彻底成功了,哈哈哈哈哈哈哈。
参考博客以及文档网址:https://blog.csdn.net/leaves_joe/article/details/67656340
https://docs.opencv.org/3.4.1/d7/d9f/tutorial_linux_install.html
https://blog.csdn.net/jiandanjinxin/article/details/71438780