2014-05-17 79 views
2

嗨,大家好,你可以給我關於OpenCV的建議嗎? 當我想打印出r看到rejectLevels它只打印出來的空數組。OpenCV Python detectMultiscale

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import os, sys, logging, time 
import numpy as np 
import cv2 
import cv2.cv as cv 


face_cacade = '../home/haarcascade_frontalface_default.xml' 

xml = cv2.CascadeClassifier(face_cascade) 

array_of_images = [] --> Some images 

for image in array_of_images:    

     img = cv2.imread(image) 

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

     gray = cv2.equalizeHist(gray) 

     **r** = [] 
     x = [] 

     #cv2.CascadeClassifier.detectMultiScale(image, rejectLevels, levelWeights[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) → objects 
     faces = xml.detectMultiScale(image = img, rejectLevels = **r**, levelWeights = x ,scaleFactor=1.05, minNeighbors=1, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE) 


     file_out = open('/tmp/faces_score.txt','w+',0) 

     for (x,y,w,h) in faces: 

     cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),1) 

     roi_gray = gray[y:y+h, x:x+w] 

     roi_color = img[y:y+h, x:x+w] 

     print **r**, x 

你能給我opencv的detectMultiScale一些解決方案和經驗,我看着C++的源代碼和它看起來罰款那裏,但在Python它不會工作,因爲它應該是。 OpenCV的版本:2.4.8 Python版本:2.7.6

回答

0

我不知道,如果我看到這個正確的,如果沒有,請大家指正,但不應該rejectlevels是一個浮點值?此外,你沒有分配任何東西給r,這意味着它將永遠是一個空陣列並保持這種狀態。我做了一件用OpenCV的python的detectmultiscale最近,也和我做的事是這樣的:

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

其中1.3相當於rejectlevels。