zoukankan      html  css  js  c++  java
  • OpenCV-Python 人脸识别

    ---恢复内容开始---

    一、简单的识别

      1、使用opencv进行猫的识别

     1 import cv2
     2 import numpy as np
     3 # 读取图片
     4 cat= cv2.imread('./cat.jpg')
     5 # 将彩色图片变成黑白图片,识别速度更快,提高效率
     6 gray = cv2.cvtColor(cat,code=cv2.COLOR_BGR2GRAY)
     7 # 针对具体的HAAR特征的级联分类器
     8 cat_head_detector = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml')
     9 # 使用cat_dead_detector中的方法进行人脸检测
    10 cat_zone = cat_head_detector.detectMultiScale(gray,scaleFactor=1.1,minNeighbors = 5,minSize=(40,40),maxSize=(80,80))
    11 for x,y,w,h in cat_zone:
    12     cv2.rectangle=(cat, pt1=(x,y), pt2=(x+w,y+h),color=[0,0,255],thickness=2)
    13 
    14 cv2.imshow('cat', cat)    # 展示图片
    15 cv2.waitKey(0)          # 在键盘上按某个键退出图片
    16 cv2.destroyALLWindows()    # 因为opencv底层是c++,得释放内存
    第八行:cv2.CascadeClassifier 是一个基于Haar特征的对象检测级联分类器。在训练分类器后,可以将应用于输入图像中感兴趣
    的区域,如果可能是是别的输出1,否则为0。分类器名称中的级联意味着所得分类器由几个更简单的分类器(阶段组成。
      使用的时候直接将特征放到分类器中便可。
    第十行:
    cat_head_detector.detectMultiScale进行人脸检测。
      第一个参数:  需要识别的黑白化的图片
      第二个参数:  待检测对象,缩放比例。默认值为1.1,值必须大于1.0
      第三个参数:  minNeighbors 周围检测的数量,作为筛选条件,值越大越苛刻
      第四个参数:  minSize 识别的最小区域
      第五个参数:  maxSize 识别的最大区域
    第十二行:cv2.rectangle()绘制识别出来的区域,这里使用的是矩形
      第一个参数:  需要识别的图片
      第二个参数:  矩形的左上角坐标
      第三个参数:  矩形的右下角坐标 (因为两个顶点能确定一个矩形,所以取两个顶点就行了)
      第四个参数:  识别出来的框的颜色因为这里是BGR模式,所以在color中表示为[蓝,绿,红]
      第五个参数:  矩形线条大小
     
    
    
  • 相关阅读:
    枚举 + 进制转换 --- hdu 4937 Lucky Number
    扫描线 + 线段树 : 求矩形面积的并 ---- hnu : 12884 Area Coverage
    暴力枚举 + 24点 --- hnu : Cracking the Safe
    dp or 贪心 --- hdu : Road Trip
    数论
    模拟 --- hdu 12878 : Fun With Fractions
    图论 --- spfa + 链式向前星 : 判断是否存在正权回路 poj 1860 : Currency Exchange
    图论 --- spfa + 链式向前星 (模板题) dlut 1218 : 奇奇与变形金刚
    图论 --- 最小生成树 + 剪枝 + 路径合并
    图论 ---- spfa + 链式向前星 ---- poj 3268 : Silver Cow Party
  • 原文地址:https://www.cnblogs.com/MoonlightMaleGod/p/9954916.html
Copyright © 2011-2022 走看看