プログラミング初心者です。最近Pythonを勉強し始めまして、色々調べているとリアルタイムでカメラに映った映像から顔の部分を認識するプログラム、いわゆる顔検出プログラムというものを作る事が出来るらしいと知りました。
調べれば結構コード丸々書いているサイトが出てきまして、そのコードの一つを実際実行するとどうなるのか気になって、jupyter notebookにコピペして試そうと思いました。しかしエラーになりました。
下記URLの、「PCのビデオカメラでリアルタイム顔認識をやってみる」という所のコードです。
http://totech.hateblo.jp/entry/2017/10/22/100726
import numpy as np import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') cap = cv2.VideoCapture(0) while(True): ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) cv2.imshow('img', img) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
error Traceback (most recent call last)
<ipython-input-17-6e48f27e37a3> in <module>
6 while(True):
7 ret, img = cap.read()
----> 8 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
9 faces = face_cascade.detectMultiScale(gray, 1.3, 5)
10 for (x,y,w,h) in faces:
error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
実は、「OpenCVの顔認識チュートリアルをやってみる」の所でも同じgrayの文でエラーが出て、更に他のサイトの顔検出プログラムでも同様でした。
エラー文について調べていくと「パスが通ってない」?というキーワードをよく見かけました。
既に色々わからない事だらけで、少しでも助言を頂けたら助かります。お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/27 08:55 編集
2019/08/27 09:17
2019/08/27 09:24
2019/08/27 10:22
2019/08/28 07:05
2019/08/28 07:07
2019/09/06 05:54