1. 程式人生 > >python+opencv 做人臉識別

python+opencv 做人臉識別

一.準備工作

  對於Linux作業系統

   1.安裝Python

   2.安裝依賴庫,命令如下:

     yum install cmake gcc gcc-c++ gtk2-devel gimp-develgimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devellibpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-develjasper-devel jasper-utils swig python libtool nasm

  3.安裝opencv

1、下載  http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download

     並解壓opencv2.49 

2、安裝依賴的庫

sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

3、安裝opencv

cd opencv2.49 
mkdir build 
cd build 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 
make 
sudo make install

3、拷貝cv2.so  (查詢其路徑的命令  find / -name cv2.so )

cp /usr/local/lib/python2.7/site-packages/cv* /usr/local/lib/python2.7/site-packages/       #第二個路徑是根據你使用的Python的site-packages目錄位置決定的,如果你使用的是anaconda ,複製cv2.so 到anaconda下的site-packages下

二.python 程式如下

import cv2

import sys

path=sys.argv[1]

face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')


#haarcascade_frontalface_default.xml 檔案在你opencv下有,查找出來自己的路徑

sample_image = cv2.imread(path)

faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))


for (x, y, w, h) in faces:
    cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)


cv2.imwrite('/Users/abel/test.png', sample_image);

儲存為face-rg.py

$python face-rg.py /home/maicaijian/test_1.jpg                #命令後面的路徑是圖片的路徑

執行效果如下: