opencv+python3.4的人脸识别----2017-7-19

opencv3.1  +  python3.4

第一回合(抄代码,可实现):人脸识别涉及一个级联表,目前能力还无法理解。

流程:1.读取图像---2.转换为灰度图---3.创建级联表---4.对灰度图使用级联表方法过滤---5.迭代得到的结果依次标记出来---6.保存图像

完整代码:

import cv2
#读取图片
img = cv2.imread('5.jpg')
#转化为灰度图
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#特征级联表
face_cascade = cv2.CascadeClassifier(r'haarcascade_frontalface_default.xml')
# print(type(face_cascade))    #<class 'cv2.CascadeClassifier'>
#多尺寸检测,返回列表  # print(face)     #[[1947 2275  374  374]....
face = face_cascade.detectMultiScale(
    gray,1.3,5
)
print('发现{0}个脸'.format(len(face)))
for (x,y,w,h) in face:
    #(图像对象,圆心,半径,颜色,封闭?)
    cv2.circle(img,((x+x+w)//2,(y+y+h)//2),w//2,(0,255,0),-1)
#保存图像
cv2.imwrite('14Peoele.jpg',img)
#显示图像
cv2.imshow('gray',img)
#防止闪屏
cv2.waitKey(0)

注意:1.python3中除法的整数用“//”

    2.识别跟图像像素有关,像素大,识别度高。

结果:

低像素:

高像素:

 

posted @ 2017-07-19 22:11  羽化凡  阅读(1539)  评论(0编辑  收藏  举报