• 基于opencv实现简单人脸检测


    1|0作用:在视频中自动检测出人脸

    1|1使用内容:灰度转换,分类器,矩形框选,圆形框选,摄像头读取及释放

    1|0代码逻辑:

    1. 先读取摄像头后,
    2. 对摄像头拍摄到的图片进行逐帧分析,
    3. 并对图像进行灰度转换后使用类选择器识别,
    4. 最后将识别出来的部分用矩形框和圆形框框选,
    5. 在把图片返回,
    6. 然后打印图片帧的坐标,
    7. 如果检测键盘摁下q那么解释结束循环
    8. 释放内存和摄像头。
    import cv2 as cv def face_detect_demo(img): gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) face_detect = cv.CascadeClassifier('E:/opencv/opencv-4.6.0/data/haarcascades/haarcascade_frontalface_alt2.xml') face = face_detect.detectMultiScale(gray) for x, y, w, h in face: cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2) cv.circle(img, center=(x + w // 2, y + h // 2), radius=(w // 2), color=(255, 0, 0), thickness=2) cv.imshow('result', img) # 读取摄像头 cap = cv.VideoCapture(0, cv.CAP_DSHOW) # cap = cv.VideoCapture('picture/arti.mp4') # 循环 while True: flag, frame = cap.read() if not flag: break face_detect_demo(frame) print(frame, frame.shape) if ord('q') == cv.waitKey(1): break # 释放内存 cv.destroyAllWindows() # 释放摄像头 cap.release()

    总结:
    主要是调用了opencv里面的分类器的库,需要注意的是圆形框选对象时计算好框选的位置范围。


    __EOF__

    本文作者筝弈
    本文链接https://www.cnblogs.com/sevents/p/16961767.html
    关于博主:评论和私信会在第一时间回复。或者直接私信我。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
  • 相关阅读:
    FutureTask源码深度剖析
    安装使用HBuilderx
    快速入门C++
    Php根据生日计算年龄
    Ansible批量安装clickhouse集群(shell脚本方式)
    在易语言中调用MS SQL SERVER数据库存储过程方法总结
    【Vue】如何搭建SPA项目--详细教程
    VIM去掉utf-8 bom头
    本地Chatglm2-6b模型训练,deepspeed依赖安装报错。
    推荐几款火爆的Python在线编辑器
  • 原文地址:https://www.cnblogs.com/sevents/p/16961767.html