当前位置: 首页 > news >正文

《OpenCV计算机视觉》—— 人脸识别

  • 识别图片如下:
    在这里插入图片描述

  • 完整代码:

import cv2image = cv2.imread('face.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
""" 加载分类器 """
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
""" 分类器检测实现人脸识别 """
"""
objects =cv2.CascadeClassifier,detectMultiscale( image[, scaleFactor[,minNeighbors[,flags[,minsize[,maxsize]]]]])
其中,各个参数及返回值的含义如下:image: 待检测图像,通常为灰度图像。scaleFactor: 表示在前后两次相继扫描中搜索窗口的缩放比例。识别,扫描,按照不同比例来进行扫描minNeighbors: 表示构成检测目标的相邻矩形的最小个数。在默认情况下,该参数的值为 3.表示有 3 个以上的检测标记存在时才认为存在人脸。如果希望提高检测的准确率可以将该参数的值设置得更大,但这样做可能会让一些人脸无法被检测到。flags: 该參数通常被省略。在使用低版本 pencV(opencv 1.X 版本)时,该参数可能会被设置为CV_HAAR_DO_CANNY_PRUNING,表示使用 canny 边缘检测器拒绝一些区城minsize: 目标的最小尺寸,小于这个尺寸的目标将被忽略。maxSize: 目标的最大尺寸,大于这个尺寸的目标将被忽略。通常情况下,将该可选参数省略即可。若 maxsize 和 minsize 大小一致,则表示仅在一个尺度上査找目标。objects: 返回值,目标对象的矩形向量组。该值是一组矩形信息,包含每个检测到的人脸对应的矩形框的信息(x轴方向位置、y轴方向位置、宽度、高度)。
"""
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=9, minSize=(8, 8))
print("发现{}张人脸".format(len(faces)))
print("其位置分别是:", faces)for (x, y, w, h) in faces:cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow("result", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 结果如下:
    在这里插入图片描述

http://www.mrgr.cn/news/48703.html

相关文章:

  • 关于上传到GPU:这个地方之前一直没有弄清楚
  • 中国剩余定理 C++
  • AI测试入门:基于 RAG 的 LLM 应用程序的测试方法「详细介绍」
  • Linux常见指令
  • 手撕数据结构 —— 带头双向循环链表(C语言讲解)
  • 链接防封(maybe)
  • 01 数据结构基础:数据的逻辑结构(集合、线性、树形、网状)或(线性与非线性)、数据的存储结构(顺序、链式、索引、散列)、数据的运算
  • MySQL数据库管理全面指南:从基础操作到高级管理
  • 组合优化_初识
  • 跟李沐学AI:Transformer
  • 守护线程详解!
  • 线程池 jvm web
  • zookeeper kafka集群配置
  • head和tail命令解析
  • JavaSE——认识异常
  • LDR6500一拖三快充线方案
  • 【秋招笔试】10.12小米(已改编)秋招-三语言题解
  • 波恩BONN功率放大器维修BSA1001-150/125D
  • Android深入理解包管理---apk信息
  • FileUtil工具类