OpenCV 3'ün sisteminizde mevcut olması gerekmektedir.
haarcascade_frontalface_default.xml dosyası opencv klasörünüzün içinde data klasöründe mevcuttur. oradan çalışma ortamınıza atabilirsiniz.
testimages dizisi içerisindeki veriler fotografların isimleridir. dosya yolunuza göre değiştirebilirsiniz. Burada farklı ırklara ait ailelerin ön taraftan çekilmiş fotografları kullanılmıştır.
scaleFactor=1.10,
minNeighbors=5,
minSize=(30, 30),
değerlerini değiştirebilirsiniz, bu size kalmış genelde 1.3 scalefactor olarak kullanılmakta ancak ben 1.10dan daha iyi verim aldım.
Yüz yakalama kodlarının tamamı buradadır:
__author__ = 'gkhan'
import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
testimages = ['arap.jpg', 'europan.jpg', 'asian1.jpg', 'black.jpg']
for index in range(len(testimages)):
img = cv2.imread(testimages[index])
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY);
faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.10,
minNeighbors=5,
minSize=(30, 30),
flags = cv2.CASCADE_SCALE_IMAGE
)
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]
cv2.imshow('Resim',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Sonuç :