##Python + OpenCV で顔検知のWebサイト
上記WebサイトでOpenCVを使って顔認証する方法を紹介をされていますが
いかんせん、情報社会で世の中の移ろいも早く、
そして、コード実行時に詰まったので、備忘録を記しておきます。
Webサイトの項目は、Windows環境であれば
【OpenCV パッケージのインストール】の項目まで問題なくいくはずです。
以降の【プログラム例】から注意してください。
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を使っているので
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】というフォルダ内に存在することが判明。
色々と大人の事情はあるのでしょうが、
こういうのちょいちょいやられると地味に嫌です。
でも、ひとつ賢くなりましたよ。
皆様のお役にたてれば何よりです。