numpy下载1.9.1
http://sourceforge.net/projects/numpy/files/NumPy/1.9.1/
opencv下载2.4.10
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/
Python opencv 教程
http://pan.baidu.com/s/1jG62bhO
group1.jpg在opencv文件夹里opencv\sources\samples\winrt\FaceDetection\FaceDetection\Assets
ha\
haarcascade_frontalface_alt.xml 在opencv\sources\data\haarcascades_cuda\
test.py
# coding=utf-8
import cv2
def identifyFace(image):
#cv2.imread 默认读入彩色图片,cv2.imread(img,0)读入灰度图
img=cv2.imread(image,0)
imgc=cv2.imread(image)
#定义画笔的颜色为蓝色,这个刚好是反的rgb对应的是blue,green,red
color=(255,0,0)
#xml文件保存的是训练集的结果,只要载入结果进行处理就行了
classfy=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
#直方图均衡化,不太清楚,好像轮廓勾勒出来了
cv2.equalizeHist(img,img)
#重点是这个,虽然我也不是很清楚,但这个可以得到一个列表,也就是数组,人脸的坐标,width,height
faceRects=classfy.detectMultiScale(img,1.2,2, cv2.CASCADE_SCALE_IMAGE,(30,30))
if len(faceRects)>0:
for faceRect in faceRects:
x,y,w,h=faceRect
#cv2.rectangle(img,左上角顶点坐标,右下角顶点坐标,颜色,线条宽度)
cv2.rectangle(imgc,(x,y),(x+w,y+h),color,3)
#cv2.imshow(窗口名称,img)
cv2.imshow("test",imgc)
#等待键盘输入=q,则关闭窗口,保存图片
key=cv2.waitKey(0)
if key == ord('q'):
cv2.destroyAllWindows()
cv2.imwrite("1.jpg",img)
if __name__=="__main__":
identifyFace("group1.jpg")