質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

778閲覧

venv上でのopencv-pythonのカスケードファイルパス

panpanpanda

総合スコア14

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/29 11:45

前提・実現したいこと

Macを使用しています。
仮想環境(venv)でopencv-pythonを使用しています。
顔認証を行うとエラーが出ます。
おそらくhaarcascade_frontalface_alt.xmlのパスが間違っていると思うのですが、
venvでopencv-pythonを使用した場合、カスケードのパスはどのようになっているのでしょうか。
初歩的な質問で恐縮ですが、よろしくお願いいたします。

発生している問題・エラーメッセージ

$ python faceditect.py Traceback (most recent call last): File "faceditect.py", line 27, in <module> facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10,10)) cv2.error: OpenCV(4.0.0) /Users/travis/build/skvark/opencv-python/opencv/modules/objdetect/src/cascadedetect.cpp:1658: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'

該当のソースコード

python

1# coding: utf-8 2 3import cv2 4 5if __name__ == "__main__": 6 7 # 内蔵カメラを起動 8 cap = cv2.VideoCapture(0) 9 10 # OpenCVに用意されている顔認識するためのxmlファイルのパス 11 cascade_path = "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" 12 # カスケード分類器の特徴量を取得する 13 cascade = cv2.CascadeClassifier(cascade_path) 14 15 # 顔に表示される枠の色を指定(白色) 16 color = (255,255,255) 17 18 while True: 19 20 # 内蔵カメラから読み込んだキャプチャデータを取得 21 ret, frame = cap.read() 22 23 # モノクロで表示する 24 #frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 25 26 # 顔認識の実行 27 facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10,10)) 28 29 # 顔が見つかったらcv2.rectangleで顔に白枠を表示する 30 if len(facerect) > 0: 31 for rect in facerect: 32 cv2.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), color, thickness=2) 33 34 # 表示 35 cv2.imshow("frame", frame) 36 37 # qキーを押すとループ終了 38 if cv2.waitKey(1) & 0xFF == ord('q'): 39 break 40 41 # 内蔵カメラを終了 42 cap.release() 43 cv2.destroyAllWindows()

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

xml をダウンロードして配置し、そのパスを記述すればよいと思います。

bash

1wget https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_alt.xml

投稿2019/01/29 12:09

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panpanpanda

2019/01/29 13:31

解決しました!ありがとうございます!! しかし、どこかにあるはずの本来のパスはどこなのでしょうか。。。
tiitoi

2019/01/29 14:51

場所はわからないですが、mac なら find コマンドでファイルを探してみてはどうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問