Skip to content

Instantly share code, notes, and snippets.

@sanryuu
Created February 25, 2015 01:18
Show Gist options
  • Save sanryuu/2b585a5f38560e2a8db1 to your computer and use it in GitHub Desktop.
Save sanryuu/2b585a5f38560e2a8db1 to your computer and use it in GitHub Desktop.
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
import cv2
import os
argv = sys.argv
#HAAR分類器の顔検出用の特徴量
#cascade_path = "/usr/local/Cellar/opencv/2.4.9/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml"
cascade_path = "/usr/local/Cellar/opencv/2.4.9/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"
#cascade_path = "/usr/local/Cellar/opencv/2.4.9/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml"
#cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml"
# 指定したパス内の全てのファイルとディレクトリを要素とするリストを返す
read_directory = argv[1]
success_directory = argv[2]
fail_directory = argv[3]
files = os.listdir(directory)
for file in files:
try:
color = (255, 255, 255) #白
#color = (0, 0, 0) #黒
#ファイル読み込み
image = cv2.imread(directory + '/' + file)
#グレースケール変換
image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)
#カスケード分類器の特徴量を取得する
cascade = cv2.CascadeClassifier(cascade_path)
#物体認識(顔認識)の実行
facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))
#facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=3, minSize=(10, 10), flags = cv2.cv.CV_HAAR_SCALE_IMAGE)
print facerect
if len(facerect) > 0:
#検出した顔を囲む矩形の作成
for rect in facerect:
cv2.rectangle(image, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]), color, thickness=2)
#認識結果の保存
if len(facerect) == 1:
cv2.imwrite(success_directory + file, image)
if len(facerect) == 1:
cv2.imwrite(fail_directory + :file, image)
except:
print 'エラー発生'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment