所以我做了一个跟踪脸部的小脚本,然后搜索两只眼睛,然后搜索左眼和右眼。
问题是,即使是左右,它也会重叠。
i = Camera().getImage()
face = i.findHaarFeatures("face.xml")
if face != None:
face = face[0].boundingBox()
face = i.crop(face)
twoeyes = face.findHaarFeatures("two_eyes_big.xml")
if twoeyes != None:
righteye = face.findHaarFeatures('right_eye.xml')
lefteye = face.findHaarFeatures('lefteye.xml')
if righteye != None and lefteye != None:
print righteye,lefteye
righteye = righteye[0].draw()
lefteye = lefteye[0].draw()
face.show()
打印显示:
[SimpleCV.Features.Detection.HaarFeature at (61,67)] [SimpleCV.Features.Detection.HaarFeature at (60,65)]
我尝试用 face.boundingBox(twoeyes) 裁剪脸部,他们搜索左右,但它总是给我(无,无)。
另外,当 findHaarFeatures("face.xml") 给我超过 1 张脸时,我遇到了问题,我通过选择列表中的第一个来克服这个问题,但我想选择其中最大的,如何我可以比较两个功能的大小吗?
最后,有没有更好的方法来查找其他内部的特征,而不是使用裁剪和 if 语句“某事!=无”?
顺便说一句,我正在使用来自相机的原始图像,用一些对比度、饱和度、findedges 或其他任何东西来更好地找到特征会更好吗?