代码拉取完成,页面将自动刷新
import cv2
from utils import faceUtils
def capture_video_and_mark_faces():
# 打开默认摄像头
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("无法打开摄像头")
return
while True:
# 逐帧捕获
ret, frame = cap.read()
# 如果正确读取帧,ret为Trueq
if not ret:
print("无法接收帧(流结束?)。退出...")
break
# 在图像中标记出人脸
frame_with_faces = faceUtils.mark_faces_in_image(frame)
face_encoding = faceUtils.get_face_encodings(frame_with_faces)
# 检查face_encoding是否为None
if face_encoding is not None:
best_match, best_distance = faceUtils.compare_faces(face_encoding)
else:
# 处理没有检测到人脸的情况,例如设置默认值或者打印一条消息
best_match = None
best_distance = None
print("未检测到人脸,无法进行比对。")
if best_match is not None:
text = f"User: {best_match}"
cv2.putText(frame_with_faces, text, (50, 50), cv2.FONT_HERSHEY_DUPLEX, 1.0, (0, 0, 255), 2)
# 显示结果帧
cv2.imshow('人脸检测', frame_with_faces)
# 等待按键,按'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源并销毁所有OpenCV创建的窗口
cap.release()
cv2.destroyAllWindows()
def main():
faceUtils.load_known_face_encodings()
capture_video_and_mark_faces()
if __name__ == "__main__":
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。