赞
踩
Python 检测学习:人脸检测与抓捕
使用Python和OpenCV检测人脸是一个常见的计算机视觉任务。
python opencv检测人脸代码,要求:使用计算机自带的摄像头进行实时抓捕与检测,并且框出人脸范围
代码如下(示例):
import cv2 # 加载Haar级联人脸检测器 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') # 启动摄像头 cap = cv2.VideoCapture(0) # 参数0通常表示默认的摄像头 if not cap.isOpened(): print("无法打开摄像头") exit() while True: # 读取摄像头的帧 ret, frame = cap.read() if not ret: print("无法读取帧") break # 转换为灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30), flags=cv2.CASCADE_SCALE_IMAGE) # 在检测到的人脸周围绘制矩形框 for (x, y, w, h) in faces: cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) # 显示结果 cv2.imshow('Real-time Face Detection', frame) # 按'q'退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头 cap.release() # 关闭所有OpenCV窗口 cv2.destroyAllWindows()
分析如下:
加载Haar级联分类器:
使用CascadeClassifier加载OpenCV自带的Haar级联人脸检测器。
启动摄像头:
使用cv2.VideoCapture(0)启动默认摄像头。参数0表示第一个摄像头设备。
读取和处理帧:
在循环中,使用cap.read()从摄像头读取每一帧。然后使用cv2.cvtColor将帧转换为灰度图像,因为人脸检测通常在灰度图像上进行。
检测人脸:
使用detectMultiScale方法在灰度帧中检测人脸。
绘制矩形框:
对检测到的每个人脸,使用cv2.rectangle在帧上绘制矩形框。
显示和退出:
使用cv2.imshow显示带有人脸矩形框的帧。循环将持续进行,直到用户按下’q’键。使用cv2.waitKey(1)设置窗口响应按键的时间间隔为1毫秒。
释放资源:
循环结束后,使用cap.release()释放摄像头资源,使用cv2.destroyAllWindows()关闭所有OpenCV创建的窗口。
以上就是今天要讲的内容,本文代码将打开你的摄像头,并在窗口中显示实时视频流,同时在检测到的人脸上绘制矩形框。按’q’键可以退出程序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。