LoginSignup
3
6

More than 5 years have passed since last update.

【Python】OpenCVの顔認証するときにとあるWebサイトを参考にしてつまった方、ご覧ください

Last updated at Posted at 2018-09-10

Python + OpenCV で顔検知のWebサイト

上記WebサイトでOpenCVを使って顔認証する方法を紹介をされていますが
いかんせん、情報社会で世の中の移ろいも早く、
そして、コード実行時に詰まったので、備忘録を記しておきます。

Webサイトの項目は、Windows環境であれば
【OpenCV パッケージのインストール】の項目まで問題なくいくはずです。

以降の【プログラム例】から注意してください。

Webに記載されているプログラム例
import cv2
import numpy as np

######ここでのディレクトリの指定に注意##################################
face_cascade = cv2.CascadeClassifier('C:\ProgramData\Anaconda3\pkgs\opencv-3.2.0-np112py36_204\Library\etc\haarcascades\haarcascade_frontalface_alt.xml')
#####################################################################

bgr = cv2.imread('d:/lena.jpg', cv2.IMREAD_COLOR)#レナPicは任意の場所にする
gray = cv2.cvtColor(bgr, cv2.COLOR_BGR2GRAY)

face_rects = face_cascade.detectMultiScale(gray, 1.1, 3)
if len(face_rects) > 0:
    for (x,y,w,h) in face_rects:
        cv2.rectangle(bgr, (x,y), (x+w,y+h), (0,255,255), 4)
else:
    print("no faces")

cv2.imshow("Face Detector", bgr)
print("press any key to exit")
c = cv2.waitKey()

cv2.destroyAllWindows()

コメントで囲っている箇所は要注意です。
例として載っているので、もちろんまるコピしてもエラーになります。
※ここまでのサンプルって結構ていねいにのせてくれている方ですよ。

openCVも都度バージョンが変わります。
2018年9月10日段階で既に3.4.2です。
しかも、今日知ったのですがパッケージディレクトリの後の中で
openCVのパッケージフォルダの仕様がややこしく変わっています。

ハウハウしました。

【旧表示(Web)】:opencv-3.2.0-np112py36_204
【最新表示】:libopencv-3.4.2-h20b85fd_0

頭に【lib】とかついてるし!

私はAnacondaを使っているので

openCVをインストールする(管理者権限のコマンドプロンプトで実施)
conda install -y opencv 

上記実行すると、opencv-3.4.2-py36h40b0b35_0のフォルダが出来るのですが
そのあとのLibraryフォルダがないのです!

途方に暮れて、pkgsディレクトリの右上んとこの検索スペースで【haarcascade_frontalface_alt.xml】と検索すると
【libopencv-3.4.2-h20b85fd_0\Library\etc\haarcascades】というフォルダ内に存在することが判明。

色々と大人の事情はあるのでしょうが、
こういうのちょいちょいやられると地味に嫌です。

でも、ひとつ賢くなりましたよ。
皆様のお役にたてれば何よりです。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6