Bananapro SimpleCV 人脸定位

本文介绍了如何使用Bananapro和SimpleCV进行人脸定位,涉及Haar分类器的应用。内容包括针对图片和摄像头的人脸定位步骤,并针对使用中可能遇到的pygame字体问题提供了解决方案,提示在bananapro上运行可能出现的性能问题。
摘要由CSDN通过智能技术生成

安装好了SimpleCV,接下来我们来试一试人脸定位的功能,注意我们现在做的事人脸定位而不是人脸识别,这里主要利用的是Haar分类器,具体原理我就不在这里展开了,下面介绍

  1. 针对图片的人脸定位
先贴出来代码再一一讲解!

from SimpleCV import *
Img=Image("display.jpg")
faces = Img.findHaarFeatures('face.xml')
if faces:
<span style="white-space:pre">	</span>for face in faces:
        print "Face at"+str(face.coordinates())
        face.draw(Color.RED,1)
   
else:
        break
Img.save("display2.jpg")
利用python语言,首先加载SimpleCV库,然后Image("display.jpg") 加载图片,findHaarFeatures函数调用Haar分类器,训练的样本为face.xml即人脸定位,函数返回值为识别到的人脸数据。然后对于识别到的每一张脸打印出人脸的位置并在人脸上划上红色的方框,并保存在display2.jpg中

       2.针对摄像头的人脸定位

from SimpleCV import *
import time
display= Display()
my =Camera()
while display.isNotDone():
        Img = my.getImage()
        faces = Img.findHaarFeatures('face.xml')
        if faces:
                for face in faces:
                        #print "Face at"+str(face.coordinates())
                        face.draw(Color.RED,1)
        Img.show()
重复的地方,不再赘述,这里主要的区别就是图像来源变成了camera,while display.isNotDone() 表示如果显示窗口没有被人为关闭(即按下x),Img=my.getImage(),是从摄像头截图,截图打上人脸识别方框后,Img.show负责回显在桌面对话框中,由于回显过程在while循环下,就相当于连续输出摄像头的动态画面。

3.问题

如果大家在使用过程中pygame出现问题,无法画出方框,极有可能是pygame安装时没有安装font库,解决办法是去编译安装SDL_ttf (依赖SDL1.2)和freetype(版本大于2.4.8),相关pygame依赖的说明请参考pygame。当然利用bananapro处理的时候画面十分卡顿,cpu性能堪忧!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值