您的位置:首页 > 运维架构

安装和使用opencv3.0

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

安装环境:

      系统: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-dev
libatlas-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
4000
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:~$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "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 here
import cv2
#import sys

#cascPath = sys.argv[1]
cascPath = '/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml'
#Create the haar
faceCascade = cv2.CascadeClassifier(cascPath)

#Get images from the video
video_capture = cv2.VideoCapture(0)

while True:

# Capture frame-by-frame

ret, 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 faces
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
# Display the resulting frame
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything is done, release the capture

video_capture.release()
cv2.destroyAllWindows()保存文件为xx.py,然后在我们打开的cv虚拟环境中,输入sudo python xx.py,就可以打开笔记本电脑自带的摄像头了,进行人脸识别了






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

人脸识别代码参考:借助摄像头在python中实现人脸检测
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息