現在open cvで顔を検知したら白い枠付きの顔画像のファイルを時刻付きで保存するプログラムを書いています。ソース自体にエラーは出ないのですが顔を検知してくれません。
#webJÌf©ççðTµÌgüð¯ÄÛ¶·évO
import cv2
import threading
from datetime import datetime
class FaceThread(threading.Thread):
def init(self, frame):
super(FaceThread, self).init()
self._cascade_path = "haarcascade_frontalface_default.xml"
self._frame = frame
def run(self): #O[XP[Ï· self._frame_gray = cv2.cvtColor(self._frame, cv2.cv.CV_BGR2GRAY) #JXP[hªÞíÌÁ¥Êðæ¾·é self._cascade = cv2.CascadeClassifier(self._cascade_path) #¨ÌF¯içF¯jÌÀs self._facerect = self._cascade.detectMultiScale(self._frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(10, 10)) if len(self._facerect) > 0: print ('顔が検出されました') self._color = (255, 255, 255) # for self._rect in self._facerect: #oµ½çðÍÞé`Ìì¬ cv2.rectangle(self._frame, tuple(self._rect[0:2]),tuple(self._rect[0:2] + self._rect[2:4]), self._color, thickness=2) #»ÝÌÔðæ¾ self._now = datetime.now().strftime('%Y%m%d%H%M%S') #F¯ÊÌÛ¶ self._image_path = self._now + '.jpg' cv2.imwrite(self._image_path, self._frame)
JðLv`Jn
cap = cv2.VideoCapture(1)
while True:
ret, frame = cap.read()
#frameð\¦ cv2.imshow('camera capture', frame) if(threading.activeCount() == 1): th = FaceThread(frame) th.start() #10msecL[üÍÒ¿ k = cv2.waitKey(10) if k == 27: break
cap.release()
cv2.destroyAllWindows()
実際のコードです。(文字化けすいません。)
どうしたらいいでいいでしょうか助言をいただければ幸いです。