[树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)
2018-01-12 02:08
1336 查看
前言
上一篇我们讲了博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教程中有一个地方稍微有点问题,导致我入坑好久!这里也会着重说明下。
1、Expandfilesystem
新安装系统之后,首要的工作就是扩大文件系统。因为,用SD卡安装完系统后一大部分空间实际是未被分配的:sudoraspi-config
选择7高级,然后选择“1.ExpandFileSystem”,之后点击finish,然后reboot。
sudoreboot
之后,你可以用df-h命令确认文件系统是否被扩大:(如下,我的SD卡为闪迪的32G内存卡)
➜~df-h FilesystemSizeUsedAvailUse%Mountedon /dev/root30G6.2G22G23%/ devtmpfs466M0466M0%/dev tmpfs470M0470M0%/dev/shm tmpfs470M6.4M464M2%/run tmpfs5.0M4.0K5.0M1%/run/lock tmpfs470M0470M0%/sys/fs/cgroup /dev/mmcblk0p141M21M21M51%/boot tmpfs94M094M0%/run/user/1000
2、Installdependencies
接下来是安装openCV的依赖,下面步骤有点多,大家千万别漏了其中一两个(我操作的时候就把ibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev给忘了,结果又得花几个小时重新编译一遍!!!)2.1更新
$sudoapt-getupdate $sudoapt-getupgrade
2.2安装CMake等编译openCV源码的工具
$sudoapt-getinstallbuild-essentialcmakepkg-config
2.3安装几种常见格式的图像操作的包,方便我们能从硬盘上读取不同格式的图像
$sudoapt-getinstalllibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev
2.4同样的,我们也需要视频操作的包
$sudoapt-getinstalllibavcodec-devlibavformat-devlibswscale-devlibv4l-dev $sudoapt-getinstalllibxvidcore-devlibx264-dev
2.5openCV用于图像/GUI展示的功能依赖highgui模块,为了编译highgui,我们需要安装GTKdevelopmentlibrary
$sudoapt-getinstalllibgtk2.0-dev
2.6安装额外的一些依赖
$sudoapt-getinstalllibatlas-base-devgfortran
^-^记得看一下上面几个安装过程有没有少哦
2.7接下来还需要安装pythondev
sudoapt-getinstallpython2.7-devpython3-dev
3、DownloadtheOpenCVsourcecode
下载并解压3.1.0版本的源码:$cd~ $wget-Oopencv.ziphttps://github.com/Itseez/opencv/archive/3.1.0.zip$unzipopencv.zip
为了安装完整的openCV3,体验新的features,还需要下载并解压opencv_contrib(注意和opencv版本保持一致):
$wget-Oopencv_contrib.ziphttps://github.com/Itseez/opencv_contrib/archive/3.1.0.zip$unzipopencv_contrib.zip
4、准备python环境
4.1安装python包管理器:$wgethttps://bootstrap.pypa.io/get-pip.py$sudopythonget-pip.py
4.2安装python虚拟环境virtualenvvirtualenvwrapper
首先说明下为什么要装这两个包:
First,it’simportanttounderstandthatavirtualenvironmentisaspecialtoolusedtokeepthedependenciesrequiredbydifferentprojectsinseparateplacesbycreatingisolated,independentPythonenvironmentsforeachofthem.
Inshort,itsolvesthe“ProjectXdependsonversion1.x,butProjectYneeds4.x”dilemma.Italsokeepsyourglobalsite-packagesneat,tidy,andfreefromclutter.
IfyouwouldlikeafullexplanationonwhyPythonvirtualenvironmentsaregoodpractice,absolutely
用虚拟开发环境可以为每个工程提供独立的python开发环境、独立的包、独立的版本,每个独立的环境会在~/.virtualenvs/下形成资源包~
$sudopipinstallvirtualenvvirtualenvwrapper $sudorm-rf~/.cache/pip
之后在~/.profile文件最后添加下面几行:
#virtualenvandvirtualenvwrapper exportWORKON_HOME=$HOME/.virtualenvs source/usr/local/bin/virtualenvwrapper.sh
之后如果想用python虚拟环境,在每次打开一个新的terminal就要执行一次source~/.profile
$source~/.profile
接下来我们生成一个python虚拟环境来用于opencv的开发提供环境:(这里不讲python2,强烈建议用python3)
$mkvirtualenvcv-ppython3
注:再次说明python虚拟环境是完全独立的,也就是说在cv的环境下安装的python包,步适用于全局;在全局安装的包,不适合cv。
如何验证你如何将cv环境生成好了呢?——新开一个terminal,执行下列命令:
$source~/.profile $workoncv
如果terminal前面的文字变成了(cv)表明成功创建了名为cv的python虚拟环境:
4.3在cv虚拟环境下安装numpy
在接下来的操作中都要保持在cv环境中!
(cv)->~$pipinstallnumpy
5、编译和安装openCV
5.1编译前的准备首先确定是在cv虚拟环境中,如果不在,可以执行:
$source~/.profile $workoncv
接下来用cmake进行编译opencv:
注:这一步参考链接1的介绍中缺少一个编译选项,导致总是make出错:(当其出错时,按照下面的方法进行尝试:)
make-j4总是报错: 解决方法:删除build下的所有东西(cmake产生的和make-j4产生的),重新cmake,多加一个下面的选项 反思:之前一直复制网上的,结果网上坑爹把-D和后面单词连到一块结果还是不成功,导致走了好多弯路。之后做事情前要分析原因(为什么,然后再去尝试,不要根据结果来反馈尝试的对错!!!这样可能会走弯路!!!) link:http://answers.opencv.org/question/116926/ubuntu-1610-opencv-build-fails-stdlibh-missing/
-直接采用ubuntu中opencv的安装方法会报QT缺少的错误:http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
$cd~/opencv-3.1.0/
$mkdirbuild
$cdbuild
$cmake-DENABLE_PRECOMPILED_HEADERS=OFF\
-DCMAKE_BUILD_TYPE=RELEASE\
-DCMAKE_INSTALL_PREFIX=/usr/local\
-DINSTALL_PYTHON_EXAMPLES=ON\
-DOPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules\
-DBUILD_EXAMPLES=ON..
cmake结束之后,会出现下图所示:(当时忘了截图了,盗用别人的一张^-^)
请仔细校对下python3栏的Interpreter的python虚拟环境的路径,numpy指向python虚拟环境下的numpy安装路径等...
5.2开始编译opencv
上面准备好了一切,只等make了!请再次确保您在cv虚拟环境中:
$make-j4
编译过程大概会用2~3个小时!-j4是采用4线程编译,如果采用4线程编译出现问题请采用单线程编译:
$makeclean
$make
编译结束后会出现下图所示(也没有留截图,直接盗别人的图):
5.3安装opencv
接下来就只需要几个简单的命令就能安装了:
$sudomakeinstall
$sudoldconfig
6、pi3安装opencv3收尾工作
接下来做一点收尾工作,然后就能用你的PI开发图像识别的项目了!opencv编译好之后就可以makeinstall安装了,编译是通用的,install是将相应的模块、DEMO放到相应的文件夹内;
下面几步主要是在python虚拟环境中链接到opencv模块:(知其所以然)
上面当运行完makeinstall之后OpenCV+Python的打包文件将安装在:/usr/local/lib/python3.4/site-packages
$ls-l/usr/local/lib/python3.4/site-packages/
total1852
-rw-r--r--1rootstaff1895932Mar2021:51cv2.cpython-34m.so
我们需要将cv2.cpython-34m.so重命名为cv2.so:
$cd/usr/local/lib/python3.4/site-packages/
$sudomvcv2.cpython-34m.socv2.so
然后需要将python虚拟环境中的cv2.so链接到上面刚被改名为cv2.so的文件上:
$cd~/.virtualenvs/cv/lib/python3.4/site-packages/
$ln-s/usr/local/lib/python3.4/site-packages/cv2.socv2.so
7、测试OpenCV3是否安装成功
进入cv环境,然后调用简单的python指令:$source~/.profile $workoncv
$python
>>>importcv2
>>>cv2.__version__
'3.1.0'
>>>
此时在home目录下还有两个编译、安装opencv时使用的文件夹,理论上可以直接删除掉,但是我建议还是先理解下整个操作流程之后再删掉!
因为,对opencv源码的编译是需要很长时间的,一旦之后发现有什么问题,可以查看或修改opencv源码来尝试解决问题!
➜~ls
DesktopDocumentsDownloadsget-pip.pyMusicopencv-3.1.0opencv_contrib-3.1.0PicturesPublicpython_gamesTemplatesVideos
8、跑几个简单的图像识别的DEMO
编译、安装好之后,其DEMO放在/usr/local/share/OpenVC/sample/python目录下:注意:1、运行opencv的DEMO不要在ssh中运行,某些程序是需要GUI的;
2、opencv的比较多的DEMO都需要摄像头,买不起树莓派自带的贵的,可以淘宝上随便买个20多块钱的免去动USB摄像头;
由于在usr目录下的DEMO都是只读文件、且其中少了data文件夹(data文件夹是DEMO所需要的一些图片及视频资源),
如果直接运行的话,会报资源缺少等问题:
(cv)➜pythonpythonhoughlines.py
ThisexampleillustrateshowtouseHoughTransformtofindlines
Usage:
houghlines.py[<image_name>]
imageargumentdefaultsto../data/pic1.png
Traceback(mostrecentcalllast):
File"houghlines.py",line33,in<module>
a,b,c=lines.shape
AttributeError:'NoneType'objecthasnoattribute'shape'
因此,我们将/usr/local/share/OpenVC/sample/文件拷贝到Downloads/sample/,同时从openCV的源码文件中找到data文件夹,并复制到sample目录下:
cp-r/usr/local/share/OpenCV/samples~/Downloads/samples
cp-r~/opencv-3.1.0/samples/data~/Downloads/samples/data/
(cv)➜samplestree-L1~/Downloads/samples
/home/pi/Downloads/samples
├──data
└──python
如下是运行霍夫找直线的DEMO效果:
kmeans聚类算法:(cv)➜pythonpythonkmeans.py
边缘检测算法:(cv)➜pythonpythonedge.py
模式识别算法:(cv)➜pythonpythonfind_obj.py
运动方向检测,光流算法:(cv)➜pythonpythonlk_track.py
参考链接
::如果您觉得不错,请推荐给更多人,帮助他们更快地解决实际问题中的坑~
@beautifulzzzz 智能硬件、物联网,热爱技术,关注产品 博客:http://blog.beautifulzzzz.com 园友交流群:414948975
相关文章推荐
- Windows下Python+OpenCV+zbar图像识别二维码识别编译环境安装
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- 学习笔记-安装Opencv+VS开发环境
- 图像识别---opencv安装
- opencv mac开发环境安装
- 树莓派raspberry pi安装archlinux,并且在上面搭建以太坊(ethereum)环境
- Ubutu 14.04 安装配置Android opencv开发环境
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- 【一】开发环境的搭建:win7+python3.6.3+opencv3.4.0安装教程
- 安装OpenCV:OpenCV 2.4.8 +VS 开发环境配置
- [安卓开发笔记一]Android开发配置opencv环境超详细教程
- 在Ubuntu上安装Tegra Android Development Pack,一键安装ubuntu 上的eclipse opencv4android的开发环境
- opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程
- 【开发日记】石头剪刀布之树莓派opencv和tensorflow安装
- [转]关于安装配置XNA开发环境的详细说明
- OpenCV-000:windows7-64位系统下-Python-OpenCV开发环境安装
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置(转)
- 【学习OpenCV小记之一】 安装OpenCV2.4.10 + VS2010开发环境配置
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 2.4.8或2.4.9 +VS 开发环境配置
- xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置