2015-12-08 57 views
7

的代碼塊(在views.py)找到在Django面(臉檢測)由URL.No問題進口CV2觸發。(同樣的事情,試圖與virtualenvwrapper示出了同樣的結果(添加所需的所有庫之後)相機初始化並....無法(使用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') 

print type(faceCascade)檢查給出<type 'cv2.CascadeClassifier'> .The對象被創建。

在相同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 
) 

現在的重要組成部分「找到沒有。的面臨」終極

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

OUTPUT:

Found 0 faces! 

這究竟是爲什麼

我已經在terminal.I印刷試圖調試在comments.Camera提到他們正在使用的我的筆記本電腦(惠普羨慕)相機,它給予分辨率640x480拍攝

我懷疑需要調整faceCascade.detectMultiScale(..)塊(參數)。嘗試與scalefactor = 1.000001minNeighbors = 3無濟於事。

+1

你似乎有隻包括你的問題的一小部分..請包括它的其餘部分,希望與你一起嘗試什麼/到目前爲止研究和爲什麼沒有奏效 – Sayse

+0

我編輯question.The老問題是錯誤發佈的,請看看新的。 –

+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)。