2016年2月24日 星期三

face detection on opencv


先把  haarcascade_frontalface_default.xml 和 haarcascade_eye.xml 連結到你目前的work diectory

ln -s ~/opencv-3.0.0/data/haarcascades/haarcascade_frontalface_default.xml .

ln -s ~/opencv-3.0.0/data/haarcascades/haarcascade_eye.xml .



code :
=========================================
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
eye_cascade  = cv2.CascadeClassifier('./haarcascade_eye.xml')


img = cv2.imread('./lena.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

for (x,y,w,h) in faces:
    img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

============================================


執行的結果如下:

畫出  face 和 eye



CascadeClassifier::detectMultiScale

Parameters:
  • cascade – Haar classifier cascade (OpenCV 1.x API only). It can be loaded from XML or YAML file using Load(). When the cascade is not needed anymore, release it usingcvReleaseHaarClassifierCascade(&cascade).
  • image – Matrix of the type CV_8U containing an image where objects are detected.
  • objects – Vector of rectangles where each rectangle contains the detected object.
  • scaleFactor – Parameter specifying how much the image size is reduced at each image scale.
  • minNeighbors – Parameter specifying how many neighbors each candidate rectangle should have to retain it.
  • flags – Parameter with the same meaning for an old cascade as in the functioncvHaarDetectObjects. It is not used for a new cascade.
  • minSize – Minimum possible object size. Objects smaller than that are ignored.
  • maxSize – Maximum possible object size. Objects larger than that are ignored.



沒有留言:

張貼留言