前提・実現したいこと
pythonでリアルタイム画像認識をしたいです。
これまで、自分でカスケード分類器を作っていて、次の段階としてリアルタイムで画像認識をしているところです。
発生している問題・エラーメッセージ
いろいろ調べてみましたが、解決には至らずエラーの山に囲まれました。
次のエラーメッセージをみていただいて問題点を教えてくれたらと思います。
QTKit didn't find any attached Video Input Devices! Warning, camera failed to properly initialize! Cleaned up camera. can not open camera
該当のソースコード
python
1import sys 2import cv2 3 4 5cap = cv2.VideoCapture(0) 6 7if cap.isOpened() is False: 8 print("can not open camera") 9 sys.exit() 10 11cascade = cv2.CascadeClassifier('cascade.xml') 12 13 14def mosaic(src, ratio=0.1): 15 small = cv2.resize(src, None, fx=ratio, fy=ratio, interpolation=cv2.INTER_NEAREST) 16 return cv2.resize(small, src.shape[:2][::-1], interpolation=cv2.INTER_NEAREST) 17 18def mosaic_area(src, x, y, width, height, ratio=0.1): 19 dst = src.copy() 20 dst[y:y + height, x:x + width] = mosaic(dst[y:y + height, x:x + width], ratio) 21 return dst 22 23while True: 24 25 ret, frame = cap.read() 26 27 28 frame = cv2.resize(frame, (int(frame.shape[1]*0.7), int(frame.shape[0]*0.7))) 29 30 31 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 32 33 34 facerect = cascade.detectMultiScale( 35 gray, 36 scaleFactor=1.11, 37 minNeighbors=3, 38 minSize=(100, 100) 39 ) 40 41 if len(facerect) != 0: 42 for x, y, w, h in facerect: 43 44 45 46 cv2.rectangle( 47 frame, 48 (x, y), 49 (x + w, y + h), 50 (255, 255, 255), 51 thickness=2 52 ) 53 54 cv2.imshow('frame', frame) 55 56 57 k = cv2.waitKey(1) 58 if k == 27: 59 break 60 61 62cap.release() 63cv2.destroyAllWindows() 64
参考にしたサイト
OpenCV 接続したカメラから動画を取得しよう (Python)
WEBカメラの映像をPythonとOpenCVで顔認識して遊ぶ
補足情報(FW/ツールのバージョンなど)
MacOS Catalina
python 3系
OpenCV3
回答1件
あなたの回答
tips
プレビュー