Кусок кода на Питоне, под платформу Raspberry c использованием OpenCV

500 руб. за проект • безналичный расчёт, электронные деньги
29 мая 2015, 08:13 • 1 отклик • 46 просмотров
Пишу код (он ниже) на Питоне, с использованием библиотеки OpenCV, под платформу Raspberry Pi. В программировании на Питоне не силен, уровень нулевой, но знаю точно, чего хочу. 
 1) С камеры получаю картинку (работает)
 2) Преобразую ее в серые тона (работает).
 3) Пытаюсь распознать на картинке лица с помощью detectMultiScale (не работает, вот здесь и проблема). Интерпретатор пишет "<unknown> is not numpy array"

Что нужно сделать:
1) Добиться того, чтобы функция отрабатывала (причем именно на платформе Raspberry) и возвращала в переменную faces - массив прямоугольников, окружающих распознанные на картинке лица (собственно это и делает функция detectMultiScale) 
2) На той же картинке frame_gray эти прямоугольники надо отрисовать.
Работа будет считаться выполненной, если присланный Вами кусок кода заработает на моей Raspberry (если необходимо, конфигурацию могу уточнить, но у меня все стандартно, модель Raspberry Pi B).
Чувствую, что заказ не разовый, готов к сотрудничеству.  
Вот код:

import os, subprocess, cv, cv2, numpy as np

STAGE=0
FRAME_WIDTH=640
FRAME_HEIGHT=480
MIN_SIZE=(40,40)
IMAGE_SCALE=2
HAAR_SCALE=1.2
MIN_NEIGHBORS=2
HAAR_FLAGS=0

## подгружаю каскадный классификатор
cascade=cv2.CascadeClassifier("fface.xml")
capture=cv.CaptureFromCAM(-1)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_WIDTH,FRAME_WIDTH)
cv.SetCaptureProperty(capture,cv.CV_CAP_PROP_FRAME_HEIGHT,FRAME_HEIGHT)
frame=cv.QueryFrame(capture)
frame_gray=cv.CreateImage((FRAME_WIDTH, FRAME_HEIGHT),8,1)
cv.CvtColor(frame,frame_gray,cv.CV_BGR2GRAY)

## проблема начинается уже здесь
SF=[]
## в функции указаны не все переменные
faces=cascade.detectMultiScale(frame_gray, 1.3, scaleFactor=1.03, levelWeights=SF)

## здесь скрипт заканчивает работу
cv.SaveImage("/home/pi/bus/img/test1.jpg",frame_gray)
cv.DestroyAllWindows()