opencv|ubuntu16.04配置opencv 实现人脸识别

  1. GCC 4.4.x 或者更高版本
  2. CMake 2.6 或者更高版本
  3. Git
  4. GTK+2.x 或者更高, 包括头文件 (libgtk2.0-dev)
  5. pkg-config
  6. Python
  7. Numpy
  8. ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
安装环境
sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo pip install numpy

这些都是前戏,接下来进入正题。
在你想要安装opencv的文件夹,输入
git clone https://github.com/opencv/opencv.git

我们从git源码安装opencv
opencv|ubuntu16.04配置opencv 实现人脸识别
文章图片

我们进入opencv
接下来分为这么几步:
  1. 创建一个临时文件夹,并进入
  2. cmake我们的opencv
  3. 安装
mkdir release#创建一个临时文件夹cd release#进入它cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. #cmake我们的opencvmakesudo make install#安装

其中有一步,在cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..中,我们可能会有一些东西下载不下来,这时候我们可以从通过手工下载。
这里给一个链接http://blog.csdn.net/yiyuehuan/article/details/52951574。
这样就安装好了opencv环境,但如果我们需要用python使用它的接口,我们还需要下载一些东西
python与opencv接口
pip install numpy pip install Matplotlib pip install opencv-python

我们需要下载这三个模块,就可以了。
等我们下载完,就可以使用opencv的cv2模块来进行python编程了。
我们来一个简单的人脸识别,我是看了http://blog.csdn.net/Marksinoberg/article/details/52443214这篇博客,来学习的。
但是其中有些东西已经不适合现在的了,我在这里更新一下。
# coding:utf-8import cv2# 待检测的图片路径 img_path = '2.jpg' Classifier_path = '/media/asahi/数据/所有下载/opencv-3.3.1/data/haarcascades/haarcascade_frontalface_default.xml' #这个路径表示,我们下载的opencv中自带的haarcascade_frontalface_default特征集,用的时候只需 #把/media/asahi/数据/所有下载/opencv-3.3.1/,换成你自己的路径就行了face_cascade = cv2.CascadeClassifier(Classifier_path)# 读取图片image = cv2.imread(img_path)gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 探测图片中的人脸faces = face_cascade.detectMultiScale(gray,scaleFactor=1.15,minNeighbors=5,minSize=(5, 5),flags=cv2.CASCADE_SCALE_IMAGE#因为现在opencv也升级成了3,所以cv2.cv也不存在了)for (x, y, w, h) in faces: cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2) # cv2.circle(image, ((x + x + w) / 2, #(y + y + h) / 2), #w / 2, #(0, 255, 0), #float(2))cv2.imshow("Find Faces!", image)cv2.waitKey(0)

还有一个坑,博主这里的Ubuntu还配置了ROS系统,如果直接运行是要报错的。
比如
Traceback (most recent call last): File "/media/asahi/办公/work/py/learning_opencv/learning_01.py", line 10, in import cv2 ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

查了一下,应该ros在搞事。我没有更好的办法只能吧/.bashrc中的最后链接到ros的语句给注释了。
opencv|ubuntu16.04配置opencv 实现人脸识别
文章图片

然后重启终端,就可以运行了。
【opencv|ubuntu16.04配置opencv 实现人脸识别】opencv|ubuntu16.04配置opencv 实现人脸识别
文章图片

    推荐阅读