python-opencv 实现人脸识别功能
使用python-opencv 实现人脸识别功能。
思路如下:
1.使用opencv库打开摄像头。
2.加载opencv中自带的人脸特征识别分类器
3.输出结果
代码如下:
import cv2 import matplotlib.pyplot as plt # 1.读取笔记本相机 cap = cv2.VideoCapture(0) # 2.在每一帧数据中进行人脸识别检测 while(cap.isOpened()): ret, frame = cap.read() if ret==True: gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 3.实例化OpenCV自带的人脸识别的分类器 face_cas = cv2.CascadeClassifier(r"E:/studay/python/haarcascade_frontalface_default.xml" ) face_cas.load(r"E:/studay/python/haarcascade_frontalface_default.xml") # 4.调用识别功能 faceRects = face_cas.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(80, 80)) for faceRect in faceRects: x, y, w, h = faceRect # 在识别到的地方画出人脸框图 cv2.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 3) cv2.imshow("face",frame) # 按q退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 5. 释放资源 cap.release() cv2.destroyAllWindows()
其中detectMultiScale函数的主要参数有四个,分别为:
参数1:image--待检测图片,一般为灰度图像加快检测速度,这里选择了gray
参数2:scaleFactor--指定图像大小在每个图像比例下缩小多少的参数。相当于缩放人脸比例去检测,如果缩放太小有可能会检测不到。默认为1.1即缩放了10%;这里设置了1.2
参数3:minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个)。
参数4:minSize - 检测出的对象最大可能性的大小。大于此值的对象将被忽略掉。
还有要注意一点的是要将分类器的路径写对,否则会出现加载失败的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本