"""
指定フォルダ内にある画像から顔部分のみを書き出す
"""
import os
import glob
import cv2
search_path = '/tmp'
result_path = search_path + '/' + 'result'
"""
haarcascade_frontalface_default.xml ファイルは anaconda のインストール
ディレクトリ配下にある
(anaconda)/pkgs/opencv3-3.1.0-py35_0/share/OpenCV/haarcascades/
"""
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
if not os.path.exists(result_path):
os.mkdir(result_path)
files = glob.glob(search_path + '/*.jpg')
for f in files:
img = cv2.imread(f)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.1, 3)
count = 1
filename, ext = os.path.splitext(os.path.basename(f))
# 顔認識で得られた部分を書き出す
for (x, y, w, h) in faces:
dst = result_path + '/' + filename + '_' + str(count) + ext
cv2.imwrite(dst, cv2.resize(gray[y:y + h, x:x + w], (64, 64)))
count += 1
0 件のコメント:
コメントを投稿