2016-02-12 139 views
0

所以我試圖一個人臉檢測程序,並用下面這段代碼:Python的 - 人臉檢測(detecMultiScale)

import numpy as np 
import cv2 

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

img = cv2.imread('sachin.jpg') 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

faces = face_cascade.detectMultiScale(gray, 1.3, 5) 
for (x,y,w,h) in faces: 
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 
    roi_gray = gray[y:y+h, x:x+w] 
    roi_color = img[y:y+h, x:x+w] 
    eyes = eye_cascade.detectMultiScale(roi_gray) 
    for (ex,ey,ew,eh) in eyes: 
     cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) 

cv2.imshow('img',img) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

的代碼實際上是從here並沒有完成其工作。它向我展示了圖像,但沒有標記臉部或眼睛。我正在與Rasbian Jessie OS一起開發Raspberry Pi。

這裏有一些事情我嘗試:

我試圖cv2.imshow(「IMG」,灰色)和它顯示的灰度圖像,這意味着BRG =>灰色是好的。

我試圖在隨機的地方畫一個矩形,所以cv2.rectangle函數是好的。

我檢查了OpenCV/data文件夾,'haarcascade_frontalface_default.xml'和'haarcascade_eye.xml'文件都在那裏。

我試圖打印(faces_cascade),並且它返回 「CascadeClaasifier 0x741b48d0」

我試圖打印(面),並將其返回(),這意味着沒有什麼是這個數組內。

我已經試過4,5圖像用不同的亮度,沒有一次成功

我覺得可能出問題的唯一部分是這一行:

faces = face_cascade.detectMultiScale(gray, 1.3, 5) 

因爲打印(面)沒有不返回任何價值。

任何人都可以幫忙嗎?任何幫助表示感謝。

解決,而不是'haarcascade_frontalface_default,xml',鍵入文件的完整目錄。與眼睛檢測部分相同。

回答

0

解決。不要只是'haarcascade_frontalface_defuault.xml',輸入文件的完整目錄。與眼睛檢測部分相同。

0

我發現這段代碼也顯示了我錯誤的結果。有什麼問題?