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

接下来分为这么几步:

  1. 创建一个临时文件夹,并进入
  2. cmake我们的opencv
  3. 安装
mkdir release   #创建一个临时文件夹

cd release  #进入它

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. #cmake我们的opencv

make

sudo 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-8

import 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 <module>
    import cv2
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

查了一下,应该ros在搞事。我没有更好的办法只能吧/.bashrc中的最后链接到ros的语句给注释了。
这里写图片描述
然后重启终端,就可以运行了。

这里写图片描述

发布了31 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/yhy1315/article/details/78172995
今日推荐