写一个python代码把影像里出现人脸的开始时间和结束时间记录到log文件里,名称为face.log
时间: 2024-03-26 18:41:33 浏览: 42
好的,以下是一个简单的Python代码示例,可以实现您的需求:
```python
import cv2
import datetime
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 加载人脸检测器
cap = cv2.VideoCapture('video.mp4') # 打开视频文件
log_file = open('face.log', 'w') # 打开日志文件
face_detected = False # 是否检测到人脸的标志位
start_time = None # 开始时间戳
while True:
ret, frame = cap.read() # 读取视频帧
if not ret:
break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 转换为灰度图像
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5) # 检测人脸
if len(faces) > 0 and not face_detected: # 检测到人脸
face_detected = True
start_time = datetime.datetime.now()
log_file.write(str(start_time) + "\n") # 记录开始时间戳到日志文件
elif len(faces) == 0 and face_detected: # 未检测到人脸
face_detected = False
end_time = datetime.datetime.now()
log_file.write(str(end_time) + "\n") # 记录结束时间戳到日志文件
cap.release() # 释放视频文件
log_file.close() # 关闭日志文件
```
这段代码使用了OpenCV库中的人脸检测器来检测视频中的人脸,当检测到人脸时,记录开始时间戳,当未检测到人脸时,记录结束时间戳,并将时间戳写入face.log文件中。需要注意的是,这段代码仅供参考,实际使用时需要根据具体需求进行修改和优化。
阅读全文