Python2

haar特征+adaboost分类器

1.haar特征
特征的本质是像素经过运算后获得的某种结果
haar特征主要通过模板遍历整幅图像来获取计算结果,以最简单的上下矩形模板为例,其结果有主要的三种表达方式:
haar=白色区域-黑色区域
haar=全部区域权重1+黑色部分权重2
haar=(p1-p2-p3+p4)*w(积分图计算)
haar在图片遍历过程中需考虑遍历步长问题,涉及计算量,同时还需对遍历模板进行缩放
由于直接进行计算量庞大,因此积分图被提出。
2.adaboost分类器
作用:对获得的特征进行分类判断
优点:能过自适应的减小正确样本的权重系数增强错误样本的权重系数
组成:一般由15-20个强分类器(阈值分类判断)组成,每个强分类器由若干个弱分类器组成(特征计算),弱分类器最多由3个Node节点最初(对应3个haar特征)。
OpenCV自身带xml文件提供使用。

人脸识别和眼睛识别实例

import cv2
import numpy as np
#引入XML文件
face_xml=cv2.CascadeClassifier(“image\haarcascade_frontalface_default.xml”)
eye_xml=cv2.CascadeClassifier(“image\haarcascade_eye.xml”)
#引入图像
img=cv2.imread(“image\face.jpg”)
cv2.imshow(‘original’,img)
#灰度化
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#分类 图像数据灰度 缩放系数 人脸最小像素
faces=face_xml.detectMultiScale(gray,1.3,5)
print(‘faces=’,faces)
#绘制
for (x,y,w,h)in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_face=gray[y:y+h,x:x+w]
roi_eye=img[y:y+h,x:x+w]
eyes=eye_xml.detectMultiScale(roi_face)
print(‘eyes=’,eyes)
for (e_x,e_y,e_w,e_h)in eyes:
cv2.rectangle(roi_eye,(e_x,e_y),(e_x+e_w,e_y+e_h),(0,255,0),2)
cv2.imshow(‘result’,img)
cv2.waitKey()
cv2.destroyAllWindows()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值