鱼C论坛

 找回密码
 立即注册
查看: 2187|回复: 2

[作品展示] python实现摄像头实时人脸检测

[复制链接]
发表于 2020-8-10 17:16:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 宋恺 于 2020-8-10 17:22 编辑
python实现摄像头实时人脸检测

此程序需要安装opencv
可以直接在cmd中输入:
pip install opencv-python
但因为服务器在国外,所以会很慢,建议在cmd中输入:
python -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
一劳永逸的办法:
https://fishc.com.cn/thread-143635-1-1.html


                               
登录/注册后可看大图

代码:
import cv2


def CatchUsbVideo(window_name):
  cv2.namedWindow(window_name)
  
  #视频来源,来自USB摄像头
  cap = cv2.VideoCapture(0)        
  
  #告诉OpenCV使用人脸识别分类器
  classfier = cv2.CascadeClassifier(r"E:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")#文件haarcascade_frontalface_default.xml的路径
  
  #识别出人脸后要画的边框的颜色,RGB格式
  color = (0, 255, 0)
    
  while cap.isOpened():
    ok, frame = cap.read() #读取一帧数据
    if not ok:      
      break     #将当前帧转换成灰度图像
    grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)         
    
    #人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
    faceRects = classfier.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 5, minSize = (32, 32))
    if len(faceRects) > 0:      #大于0则检测到人脸                  
      for faceRect in faceRects: #单独框出每一张人脸
        x, y, w, h = faceRect    
        cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)
            
    #显示图像
    cv2.imshow(window_name, frame)    
    c = cv2.waitKey(10)
     
  
  #释放摄像头
  cap.release()
  cv2.destroyAllWindows() 

CatchUsbVideo("")
关于haarcascade_frontalface_default.xml文件的路径,请改为你自己电脑的路径,此文件在:
安装python的盘\安装python的文件夹\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-10 17:19:14 | 显示全部楼层
这不就是小甲鱼的代码?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-11 10:18:38 | 显示全部楼层
zltzlt 发表于 2020-8-10 17:19
这不就是小甲鱼的代码?


不是吧
我自己写的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表