安装和使用opencv3.0

来源:互联网 发布:linux常用命令有哪些 编辑:程序博客网 时间:2024/06/11 09:49

    人脸识别检测很早就在发展了,但是现在基本上发展成熟了吧。我也是想玩一玩,这篇文章就当作是个实验笔记吧!

安装环境:

      系统:Ubuntu14.04LTS

第一步:安装必要的工具库和包。

    打开终端,Ctrl+Alt+t,输入sudo apt-get install build-essential cmake git pkg-config,然后终端会打印出提示信息,是否需要安装这些包,输入y就继续安装了。

第二步:因为opencv是图像处理方面的,必须安装基于图像的工具包。

    终端输入 :sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev libgtk2.0-devlibavcodec-dev libavformat-dev libswscale-dev libv4l-devlibatlas-base-dev gfortran

第三步:安装python包管理器pip。

    终端输入:wget https://bootstrap.pypa.io/get-pip.py        再次输入:sudo python get-pip.py

第四步:安装virtualenv和virtualenvwrapper. 用来分割python虚拟环境. 这不是必须的, 但是强烈推荐

    终端输入:sudo pip install virtualenv virtualenvwrapper    再次输入:sudo rm -r ~/,cache/pip  更新环境变量:sudo vim /etc/profile,输入shift+g,到最后一行,

输入o进入编辑模式的下一行,输入正文:export WORKON_HOME=$HOME/.virtualenvs,按esc键退出编辑模式,按shift+:,进入底行模式输入wq保存退出。

回到终端,输入source /etc/profile,更新整个环境变量使设置生效。最后终端输入:mkvirtualenv cv生成名叫cv的虚拟开发环境。

第五步:安装python工具和numpy工具库

    终端输入:sudo apt-get install python2.7-dev numpy

环境安装好了,现在进入正题安装opencv3.0.

     终端输入:git clone https://github.com/Itseez/opencv.git.这个方式很慢,我直接网页访问https的网址,直接网页下载opencv3.0的zip文件。然后下载opencv_contrib3.0的zip文件,这两个版本要一致。

     是时候开始安装opencv了。首先把两个包解压,unzip命令就可以了。解压完,进入opencv3.0的目录下:cd opencv3.0,新建一个目录,然后目录下写个编译的脚本。mkdir build && cd build, vim build.sh进入脚本文件,编辑内容如下:

cmake -D CMAKE_BUILD_TYPE=RELEASE \             -D CMAKE_INSTALL_PREFIX=/usr/local \             -D INSTALL_C_EXAMPLES=ON \             -D INSTALL_PYTHON_EXAMPLES=ON \             -D OPENCV_EXTRA_MODULES_PATH=...../opencv_contrib/modules \             -D BUILD_EXAMPLES=ON ..
脚本文件编辑好了,就添加可执行权限,chmod a+x build.sh,然后执行这个脚本./build.sh,一般没有错误,然后开始sudo make了。如果笔记本内存多,支持多线程,一般就可以执行sudo make -j4,表示用4线程编译,这样比较快。如下是我的编译过程

编译完成,没有报错,就可以安装了,sudo make install 然后更新下链接sudo ldconfig。这下安装全部完成了,opencv3.0被安装到/usr/local/lib/python2.7/distpackages中了。但是我们的虚拟环境cv还没有opencv,需要建立个软连接:

cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ln -s /usr/local/lib/python2.7/distpackages/cv2.so  cv2.so
安装完成验证:
fh@pc:~$ workon cv(cv) fh@pc:~$ pythonPython 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import cv2>>> cv2.__version__'3.0.0'>>> 

终端输出3.0.0就表明opencv3.0安装完毕。是时候写段代码show一下opencv3.0的厉害了。代码如下

#import modules used hereimport cv2#import sys#cascPath = sys.argv[1]cascPath  = '/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml'#Create the haarfaceCascade = cv2.CascadeClassifier(cascPath)#Get images from the videovideo_capture = cv2.VideoCapture(0)while True:# Capture frame-by-frameret, frame = video_capture.read()gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)faces = faceCascade.detectMultiScale(    gray,    scaleFactor=1.1,    minNeighbors=5,    minSize=(30, 30),    flags=cv2.CASCADE_SCALE_IMAGE)# Draw a rectangle around the facesfor (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)# Display the resulting framecv2.imshow('Video', frame)if cv2.waitKey(1) & 0xFF == ord('q'):break# When everything is done, release the capturevideo_capture.release()cv2.destroyAllWindows()
保存文件为xx.py,然后在我们打开的cv虚拟环境中,输入sudo python xx.py,就可以打开笔记本电脑自带的摄像头了,进行人脸识别了大笑大笑大笑

本文参考文章:手把手教你,在Ubuntu安装opencv和python

人脸识别代码参考:借助摄像头在python中实现人脸检测