2015-12-08 48 views
7

Bu kod bloğu (see.py) bir URL tarafından tetiklenir. Cv2 içe aktarma sorunu yoktur. (Virtualenvwrapper ile aynı şey denendi) print type(faceCascade) kontroldjango'da (yüz algılama) yüzleri bulamıyor (python-opencv kullanarak) projesi

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'> hayranlarıyla nesne oluşturulur verir .... (gerekli tüm kütüphaneleri ekledikten sonra) aynı sonucu gösterir Kamera başlatır ve.

aynı caminit

daha hareketli
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 
) 

Şimdi önemli bölüm "Bulma no.

Found 0 faces! 

neden oluyor ise Kullanılıyorum comments.Camera bunları belirtmiştik terminal.I içinde yazdırarak hata ayıklama denedi: bir "TERMİNALDE içinde

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

OUTPUT yüzleri 640x480 çözünürlüğe sahip dizüstü bilgisayarım (HP envy) fotoğraf makinesi

faceCascade.detectMultiScale(..) bloğunda bir şeylerin ayarlanması gerektiğinden şüpheleniyorum. (Parametreler) .I scalefactor = 1.000001 ve minNeighbors = 3 ile hiçbir fayda elde etmek için çalıştı.

+1

Sadece sorunuzun bir kısmını dahil etmiş görünüyorsunuz .. lütfen geri kalanını dahil edin, umarız şu ana kadar ne denediniz/araştırdınız ve neden çalışmadı – Sayse

+0

Soruyu düzenliyordum. Soru yanlışlıkla gönderildi.Lütfen yeni bir tane var. –

+0

Resmin doğru oluşturulduğunu kontrol ettiniz mi? Bir yüzün olması gereken fotoğrafta net bir ayrım var mı? (resimdeki aydınlatma vb.) – Sayse

cevap

0

Tecrübemde en iyisini öngören sınıflandırıcı şudur: haarcascade_frontalface_alt2.xml, bununla deneyebilirsiniz.

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

Bunun dışında çalışırken, sen gerçek görüntü yüklüyorsunuz emin olmalısınız:

Bu

benim için çalışıyor koddur. Siyah bir görüntü yüklüyor olabilirsiniz, sonra söylediğiniz gibi bir şey döndürebilir (480, 640, 3).

İlgili konular