前提・実現したいこと
顔認証を行い、顔の周りを四角いフレームで囲みたい。
リアルタイムでwebカメラを利用する。
発生している問題・エラーメッセージ
AttributeError: module 'cv2.cv2' has no attribute 'cv'
該当のソースコード
python
1import cv2 2import threading 3from datetime import datetime 4 5class FaceThread(threading.Thread): 6 def __init__(self, frame): 7 super(FaceThread, self).__init__() 8 self._cascade_path = "/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" 9 self._frame = frame 10 11 def run(self): 12 #グレースケール変換 13 self._frame_gray = cv2.cvtColor(self._frame, cv2.cv.CV_BGR2GRAY) 14 15 #カスケード分類器の特徴量を取得する 16 self._cascade = cv2.CascadeClassifier(self._cascade_path) 17 18 #物体認識(顔認識)の実行 19 self._facerect = self._cascade.detectMultiScale(self._frame_gray, scaleFactor=1.2, minNeighbors=3, minSize=(10, 10)) 20 21 if len(self._facerect) > 0: 22 print ('顔が検出されました。') 23 self._color = (255, 255, 255) #白 24 for self._rect in self._facerect: 25 #検出した顔を囲む矩形の作成 26 cv2.rectangle(self._frame, tuple(self._rect[0:2]),tuple(self._rect[0:2] + self._rect[2:4]), self._color, thickness=2) 27 28 #現在の時間を取得 29 self._now = datetime.now().strftime('%Y%m%d%H%M%S') 30 #認識結果の保存 31 self._image_path = self._now + '.jpg' 32 cv2.imwrite(self._image_path, self._frame) 33 34# カメラをキャプチャ開始 35cap = cv2.VideoCapture(0) 36 37while True: 38 ret, frame = cap.read() 39 40 #frameを表示 41 cv2.imshow('camera capture', frame) 42 43 if(threading.activeCount() == 1): 44 th = FaceThread(frame) 45 th.start() 46 47 #10msecキー入力待ち 48 k = cv2.waitKey(10) 49 #Escキーを押されたら終了 50 if k == 27: 51 break 52 53#キャプチャを終了 54cap.release() 55cv2.destroyAllWindows()
試したこと
バージョンを最新のものにしました。
補足情報(FW/ツールのバージョンなど)
webカメラは起動するのですが、顔の周りを枠で囲ってくれません。
上記のエラーメッセージが繰り返し出てきてしまします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/01 06:34