前提・実現したいこと
最近プログラミングに興味を持ち始めたばかりの者です。
なのでプログラムコードが読みにくいかもしれませんが、ご回答いただけると助かります。。
openCVとwebカメラ使って自分の顔検出(オブジェクト検出)をしようと試みています。
後述のコードをPythonで書き実行したところ以下のようなエラーメッセージが表示されました。
※webカメラによる動画表示は動作確認できています。
発生している問題・エラーメッセージ
Error: <class 'cv2.error'> OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale' [' File "detect_objects_camera.py", line 15, in <module>\n facerect = cascade.detectMultiScale(frame)\n'] [ WARN:0] terminating async callback
該当のソースコード
python
1 2import cv2 3 4try: 5 capture = cv2.VideoCapture(1) 6 cascade = cv2.CascadeClassifier( 7 r'C:\Users\Taisei\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml') 8 9 while(True): 10 ret, frame = capture.read() 11 if ret == False: 12 print('カメラから映像を取得できませんでした.') 13 continue 14 facerect = cascade.detectMultiScale(frame) 15 if len(facerect) > 0: 16 for rect in facerect: 17 cv2.rectangle(frame, tuple(rect[0:2]), 18 tuple(rect[0:2]+rect[2:4]), (0, 0,255), thickness=2) 19 cv2.imshow('f', frame) 20 21 if cv2.waitKey(1) & 0xFF == ord('q'): 22 break 23 24 capture.release() 25 cv2.destroyAllWindows() 26except: 27 import sys 28 print("Error:", sys.exc_info()[0]) 29 print(sys.exc_info()[1]) 30 import traceback 31 print(traceback.format_tb(sys.exc_info()[2]))
試したこと
openCVやAnacondaのバージョンを確認しました。
補足情報(FW/ツールのバージョンなど)
OpenCVのバージョンは4.1.0です。
AnacondaでPython(3.6.8)を使っています。
コードはSpyder(3.3.6)で書いています。
動画のグレースケール化やCanny処理などは動作します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/14 09:30