2.影像里出现人脸的开始时间和结束时间记录到log文件里,名称为face.log
时间: 2024-03-24 12:41:24 浏览: 59
你可以使用Python中的OpenCV和datetime库来检测影像中的人脸并记录到log文件中。具体操作如下:
```
import cv2
import datetime
# 影像文件路径
video_path = 'path/to/video.mp4'
# 人脸分类器文件路径
face_cascade_path = 'path/to/haarcascade_frontalface_default.xml'
# 打开影像文件
cap = cv2.VideoCapture(video_path)
# 创建人脸分类器
face_cascade = cv2.CascadeClassifier(face_cascade_path)
# 创建log文件
log_file = open('face.log', 'w')
# 记录开始时间
start_time = datetime.datetime.now()
# 遍历每一帧
while cap.isOpened():
ret, frame = cap.read()
if ret:
# 转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
# 若检测到人脸则记录时间到log文件中
if len(faces) > 0:
current_time = datetime.datetime.now()
log_str = '人脸出现时间:%s,结束时间:%s\n' % (start_time.strftime('%Y-%m-%d %H:%M:%S'), current_time.strftime('%Y-%m-%d %H:%M:%S'))
log_file.write(log_str)
start_time = current_time
# 显示图像
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
log_file.close()
```
其中,cv2.VideoCapture()函数可以打开影像文件,cv2.CascadeClassifier()函数可以创建人脸分类器。通过cap.read()可以读取每一帧,通过face_cascade.detectMultiScale()可以检测人脸。若检测到人脸,则记录开始时间和结束时间到log文件中。注意需要在程序结束时释放资源和关闭log文件。
阅读全文