2016-02-23 2 views
3

Я относительно новичок в программировании на Python и использовании OpenCV (и используя stackoverflow), однако я не могу найти никого другой, кто столкнулся с этой проблемой. Я пытаюсь написать базовую программу распознавания лиц, основанную на различных обучающих программах, однако у меня возникает проблема с выходом detectMultiScale в этой части кода.Python - выход OpenCV, detectMultiScale не содержит запятых, разделяющих значения x, y, h, w

for image_path in image_paths: 
    predict_image_pil = Image.open(image_path).convert('L') 
    predict_image = np.array(predict_image_pil, 'uint8') 
    faces = faceCascade.detectMultiScale(predict_image) 

    for (x, y, w, h) in faces: 
     nbr_predicted, conf = recognizer.predict(predict_image[y: y + h, x: x + w]) 
     nbr_actual = int(os.path.split(image_path)[1].split(".")[0].replace("subject", "")) 

Я неоднократно получал «TypeError:„INT“объект не итерацию» ошибка всякий раз, когда я запустил программу, это заставило меня проверить, что «лица», на самом деле список отдельных значений. После запуска этой слегка измененной части кода стало очевидно, что это не так.

for image_path in image_paths: 
    predict_image_pil = Image.open(image_path).convert('L') 
    predict_image = np.array(predict_image_pil, 'uint8') 
    faces = faceCascade.detectMultiScale(predict_image) 
    print faces 

отпечатан на консоль

[[108 55 154 154]] 
[[116 62 152 152]] 
[[ 95 76 139 139]] 
[[118 57 152 152]] 
[[107 53 152 152]] 
[[ 32 59 153 153]] 
[[101 84 137 137]] 
[[ 92 53 152 152]] 
[[ 85 77 141 141]] 
[[ 96 55 156 156]] 
[[108 69 145 145]] 
[[ 94 47 159 159]] 
[[112 83 137 137]] 
[[ 56 68 149 149]] 
[[103 77 142 142]] 

Это, как представляется, печатаю XYWH координаты без запятых отделяя их, это было бы причиной TypeError?

Если нет, что могло бы вызвать эту проблему? Там может быть какая-то действительно очевидная вещь, которую я пропускаю. Чтобы получить модуль лиц, мне пришлось строить opencv из источника с помощью cmake и visual studio, однако я не уверен, что это может быть причиной.

Я запускаю WinPython 64bit 2.7.10.3 и последнюю (стабильную) версию OpenCV, построенную из исходного кода.

ответ

2

Похоже, что проблема заключалась в приобретении уверенности в функции прогнозирования. Как только я удалил «, conf» из моего кода, проблема была решена.

+0

Есть ли какая-либо другая функция в текущей реализации, которая может обеспечить уверенность в функции прогнозирования? Я использую open cv-3.1.0 вместе с открытым cv contrib. – user1452759

+0

Не так давно я работал над этим, но в то время не было альтернативы. Тем не менее, это может измениться. Извините, я не могу быть более полезным. –