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

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

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

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

3139閲覧

Python+OpenCVでの顔認識が上手くいきません

mevivi

総合スコア11

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2016/12/10 17:48

###前提・実現したいこと
Python2.7+OpenCV2.4.13でwebカメラから顔認識を行い、キャプチャするプログラムを書いています。
実装中に以下のエラーメッセージが発生しました。

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

error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow

###該当のソースコード

Python

1import cv2 2import threading 3 4i = 0 5 6class Face_rect(threading.Thread): 7 def __init__(self, frame): 8 print("start") 9 super(Face_rect, self).__init__() 10 self._cascade_path = 'C:\opencv\sources\data\haarcascades\haarcascade_frontalface_alt.xml' 11 self._color = (0, 187, 254) 12 self._frame = frame 13 def run(self): 14 self._frame_gray = cv2.cvtColor(self._frame, cv2.COLOR_BGR2GRAY) 15 self._cascade = cv2.cascadeClassifier(self._cascade_path) 16 self._facerect = self._cascade.detectMultiScale(self._frame_gray, scaleFactor = 1.11, minNeighbors = 3, minSize = (5, 5)) 17 global i 18 19 if len(self._facerect) > 0: 20 for self._rect in self._facerect: 21 cv2.rectangle(self._frame_gray, tuple(self._rect[0:2]), tuple(self._rect[0:2] + self._rect[2:4]), self._color ,thickness = 2) 22 cv2.imwrite(str(i) + ".jpg", self._frame_gray) 23 i += 1 24 25cap = cv2.VideoCapture() 26 27while(1): 28 ret, frame = cap.read() 29 30 cv2.imshow("test", frame) 31 if(threading.active_count() == 1): 32 th = Face_rect(frame) 33 th.start() 34 35 k = cv2.waitKey(10) 36 if k == 27: 37 break 38 39cap.release() 40cv2.destroyAllWindows()

###試したこと
通常にカメラを起動し、キャプチャした画像を顔認識する事はできるのですが、スレッドにした所上手くいきません。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーの内容から恐らくcv2.VideoCapture()で映像の取得に失敗しているのでは?
デフォルトのカメラであれば、cv2.VideoCapture(0)と思いますが。
またエラーで示されるようにsize.widthもしくはsize.height0になっていると考えます。
imshowの前にこれらの値の確認をされるべきと考えます。

投稿2016/12/11 05:48

MasahikoHirata

総合スコア3747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問