環境
- MacBookPro late 2016
- Python3.6.1
- OpenCV3.2.0
状況
- OpenCVで顔検出するサンプルを実行してみた。
- 意味不明なエラーが出た
解決方法
コードの一部、
import cv2 def face_detect(path, file_name): img = cv2.imread(path) #here #to be continued...
当該エラーは、
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /Users/travis/build/skvark/opencv-python/opencv/modules/core/src/array.cpp, line 2501
ちなみに/Users/travisの部分にも心当たりがありません。
このエラーをそのまま検索して出るサイトは、「画像のパスをミスってると出るエラーだよ」って言うサイトが多いんですけど、自分の場合は間違っていませんでした。
結果
いろいろ検証した結果、gif画像をimreadしようとすると、当該エラーが出ることがわかりました。 僕は、通信をキャプチャして、その通信から画像を取り出したものを読み込もうとしていたのでgif画像が混ざっていたみたいです。
反省
ちゃちゃっと書いたので、だいぶてきとーになりました。
もし読んでくれた人がいた場合すみません。なんかあれば聞いてください。