我目前正在编写面部识别脚本。但是,它似乎没有正常运行,我找不到错误。
我试图让它循环给定次数,具体取决于它收到的用户输入。然后它将拍摄那个人的照片,如果它识别出他们的脸然后保存它将它保存到一个数组然后再次迭代,重复这个过程。
它似乎正在保存它拍摄的最后一张照片。
示例:我在第一张图片中微笑,它正确地保存了这个并放入数组。接下来,我有一张正面,而且它不是保存这张脸,而是保存了之前的笑容并将此图像添加到数组中。最后,我在下一个图片中闭上眼睛,它保存了一张直面图片并将其添加到阵列中。
以下是相关代码:
from SimpleCV import *
people = raw_input('How many people are going to be recognized?: ')
names = []
faceDatabase = []
picTaken = False
firstStageDone = False;
img = None
face = None
faces = None
cam = Camera()
def reset(img, face, faces):
img = None
face = None
faces = None
while firstStageDone is False:
for i in range(0, int(people)):
picTaken = False
reset(img,face,faces)
while picTaken is False:
takePic = raw_input('When ready type something: ')
image = cam.getImage().show()
img = cam.getImage()
faces = img.findHaarFeatures('face.xml')
if faces:
print 'Face Detected!'
print 'Length of Array ' + str(len(faceDatabase))
print 'Current Index ' + str(i)
faces.draw()
face = faces[-1]
face.crop().save('face' + str(i) + '.jpg')
faceDatabase.append(face.crop())
personName = raw_input('What is your name?: ')
names.append(personName)
print 'Index of ' + personName + ' is ' + str(i)
faceDatabase[i].save(names[i] + ".jpg")
picTaken = True
else:
print 'Try Again No Face Found'
faces = None
img = None
firstStageDone = True
我感谢您提供的任何帮助。