回收那个网站做推广好,澎湃动力网站建设公司,网站获取访客,北京云网站建设目录
环境#xff1a;
初始化摄像头#xff1a;
初始化FaceDetector对象#xff1a;
获取摄像头帧#xff1a;
获取数据#xff1a;
绘制数据#xff1a;
显示图像#xff1a;
完整代码#xff1a;
环境#xff1a; cvzone库#xff1a;cvzone是一个基于…
目录
环境
初始化摄像头
初始化FaceDetector对象
获取摄像头帧
获取数据
绘制数据
显示图像
完整代码
环境 cvzone库cvzone是一个基于OpenCV的计算机视觉库它提供了一些方便的功能和工具用于图像处理、人脸检测、手势识别等应用。cvzone库是由Murtaza Hassan开发的目前支持Python语言。 cv2库:cv2是OpenCVOpen Source Computer Vision Library的Python接口库它是一种广泛使用的计算机视觉和图像处理库。cv2提供了丰富的函数和工具用于处理图像、视频、进行特征检测、图像变换等各种计算机视觉任务。 可以通过清华镜像源安装 初始化摄像头
cap cv2.VideoCapture(0) # 通常 0 指的是内置摄像头
cap.set(3,1280) #设置摄像头的分辨率为 1280x720
cap.set(4,720)
初始化FaceDetector对象 FaceDetector是一个基于OpenCV的库它提供了一个简单而强大的人脸检测器。它使用了OpenCV的级联分类器Cascade Classifier来检测人脸并提供了方便易用的接口。FaceDetector可以在静态图像或实时视频中检测出人脸并返回每个检测到的人脸的位置和边界框。它还可以根据需要进行参数调整以适应不同场景和要求。FaceDetector在诸如人脸识别、人脸跟踪、表情检测等应用中非常有用。 detector FaceDetector(minDetectionCon0.5, modelSelection1)
# modelSelection: 0 表示短距离检测2米1 表示长距离检测5米
获取摄像头帧 # success: 布尔值表示是否成功捕获了帧# img: 捕获的帧success, img cap.read() # 从摄像头读取当前帧# 在图像中检测人脸# img: 更新后的图像# bboxs: 检测到的人脸边界框列表img, bboxs detector.findFaces(img, drawFalse) #在图像中检测人脸并返回更新后的图像和人脸边界框列表
获取数据 # ---- 获取数据 ---- #center bbox[center] # 获取人脸中心坐标x, y, w, h bbox[bbox] # 获取边界框的坐标和大小score int(bbox[score][0] * 100) # 获取识别置信度百分比绘制数据 # ---- 绘制数据 ---- #cv2.circle(img, center, 5, (255, 0, 255), cv2.FILLED) # 绘制圆形标记人脸中心cvzone.putTextRect(img, f{score}%, (x, y - 15), border5) # 显示识别置信度文本cvzone.cornerRect(img, (x, y, w, h)) # 绘制矩形框
显示图像 # 在名为Image的窗口中显示图像cv2.imshow(Image, img)# 等待1毫秒如果按下任意键则关闭窗口cv2.waitKey(1)完整代码
#codinggbk
# 导入必要的库
import cvzone
from cvzone.FaceDetectionModule import FaceDetector
import cv2
import logging# 配置日志记录
logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)# 记录日志信息
logging.info(这是一条信息日志)
logging.warning(这是一条警告日志)
logging.error(这是一条错误日志)
# 初始化摄像头
cap cv2.VideoCapture(0) # 通常 0 指的是内置摄像头
cap.set(3,1280) #设置摄像头的分辨率为 1280x720
cap.set(4,720)# 初始化FaceDetector对象
# minDetectionCon: 最小检测置信度阈值
# modelSelection: 0 表示短距离检测2米1 表示长距离检测5米
detector FaceDetector(minDetectionCon0.5, modelSelection1)# 循环获取摄像头帧
while True:# success: 布尔值表示是否成功捕获了帧# img: 捕获的帧success, img cap.read() # 从摄像头读取当前帧# 在图像中检测人脸# img: 更新后的图像# bboxs: 检测到的人脸边界框列表img, bboxs detector.findFaces(img, drawFalse) #在图像中检测人脸并返回更新后的图像和人脸边界框列表# 如果检测到人脸if bboxs:# 遍历每个边界框for bbox in bboxs:# bbox 包含 id, bbox, score, center# ---- 获取数据 ---- #center bbox[center] # 获取人脸中心坐标x, y, w, h bbox[bbox] # 获取边界框的坐标和大小score int(bbox[score][0] * 100) # 获取识别置信度百分比# ---- 绘制数据 ---- #cv2.circle(img, center, 5, (255, 0, 255), cv2.FILLED) # 绘制圆形标记人脸中心cvzone.putTextRect(img, f{score}%, (x, y - 15), border5) # 显示识别置信度文本cvzone.cornerRect(img, (x, y, w, h)) # 绘制矩形框# 在名为Image的窗口中显示图像cv2.imshow(Image, img)# 等待1毫秒如果按下任意键则关闭窗口cv2.waitKey(1)