2015-12-08 35 views
7

このコードブロック(views.py内)はURLによってトリガーされます.cv2をインポートする際の問題はありません(virtualenvwrapper print type(faceCascade)をチェックdjango(python-opencvを使用)で顔を検出できません。

def caminit(request): 
    cam.open(0) 
    img=cam.read() 
    cv2.imwrite("snap"+".jpg",img[1]) 
    cam.release()        #takes the instant pic 

    faceCascade =cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 
    eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') 

<type 'cv2.CascadeClassifier'>【選択オブジェクトが作成されています....(すべての必要なライブラリを追加した後)と同じ結果を示しカメラを初期化します。

は同じcaminit

でさらに上に移動
image = cv2.imread("snap.jpg") 

# when checked with image.dtype it shows correct uint8 also image.shape shows correct data {Eg: (480, 640, 3)} 

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# Detect faces in the image 
faces = faceCascade.detectMultiScale(
    gray, 
    scaleFactor=1.1, 
    minNeighbors=5, 
    minSize=(30, 30), 
    flags = cv2.cv.CV_HAAR_SCALE_IMAGE 
) 

今、重要な部分は、

Found 0 faces! 

がなぜこの出来事である私が使用しているcomments.Cameraでそれらを言及しているterminal.Iに印刷することにより、デバッグを試してみました:?の」TERMINALで

print "Found {0} faces!".format(len(faces)) 

OUTPUTに直面しています解像度640x480のスナップ写真を提供する私のラップトップ(HP envy)カメラ

faceCascade.detectMultiScale(..)ブロックで何か調整する必要があると思われます。 scalefactor = 1.000001minNeighbors = 3を試してみました。

+1

あなたの質問の一部しか含まれていないようです。残りの部分を含めてください。うまくいけば、これまでに試した/研究したこととそれがうまくいかなかった理由 – Sayse

+0

私は質問を編集していました。誤って質問が投稿されました。新しいものを見てください。 –

+0

画像が正しく作成されていることを確認しましたか?写真には何が顔であるべきかが明確に区別されていますか? (照明で写真など) – Sayse

答えて

0

私の経験では、最高のものを予測する分類器はhaarcascade_frontalface_alt2.xmlです。試してみてください。これは私のために動作するコードです

別にこれをしようとしてから
min_face_size=30 
max_face_size=100 
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml") 
faces = face_cascade.detectMultiScale(img_gray, 1.05,1,0| cv2.cv.CV_HAAR_SCALE_IMAGE,(min_face_size,min_face_size),(max_face_size,max_face_size)) 

、あなたはあなたが本当のイメージをロードしていることを確認する必要があります。黒い画像を読み込んでいると、あなたの言ったようなものが返されます(480,640,3)。

関連する問題