gpt4 book ai didi

python - (OpenCV) 将日期放在文件名中

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:58 24 4
gpt4 key购买 nike

我想在某些情况下保存 VideoCapture,所以我写了下面的代码:

  date = datetime.now()
detector = dlib.get_frontal_face_detector()
cap = cv2.VideoCapture(1) #I use second camera
global count, no_face
total_number = 0
count = 0
no_face = 0
num_bad_posture = 0
not_detected_posture = 0
while True:

ret, frame = cap.read()
frame = cv2.resize(frame,None,fx=sf,fy=sf, interpolation=cv2.INTER_AREA)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
dets = detector(gray,1)

if not dets:
print('no face')
no_face += 1
if no_face > 15:
print('no face!! for real!!')
now = str(date.now())
not_detected = cv2.resize(frame,None,fx=5,fy=5,interpolation = cv2.INTER_CUBIC)
not_detected_posture += 1
print(type(now))
cv2.imwrite('./images/non_detected/non_detected({0},{1}).jpg'. format(not_detected_posture,now),not_detected)
no_face=0
for i, d in enumerate(dets):
no_face = 0
w = d.width()
h = d.height()
x = d.left()
y = d.top()

如果我运行这段代码,文件不会被保存。此外,如果我删除 date.now() 并只放入 num_detected,它会被正确保存我不知道文件名有什么问题(因为它的类型是 str 并且其他 str 已正确保存。

如果我这样做了

 print(type(now),now)

enter image description here看起来

我需要帮助。

最佳答案

我会为文件名使用一组更有限的字符,避免使用空格、冒号、括号等字符。使用自定义日期时间格式以您想要的形式生成时间戳。

例子:

from datetime import datetime
from os import path


BASE_DIR = './images/non_detected'
PREFIX = 'non_detected'
EXTENSION = 'jpg'
file_name_format = "{:s}-{:d}-{:%Y%m%d_%H%M%S}.{:s}"


date = datetime.now()
not_detected_posture = 0


file_name = file_name_format.format(PREFIX, not_detected_posture, date, EXTENSION)

file_path = path.normpath(path.join(BASE_DIR, file_name))

# ---------

print("File name = '%s'" % file_name)
print("File path = '%s'" % file_path)

输出:

File name = 'non_detected-0-20170819_152459.jpg'
File path = 'images/non_detected/non_detected-0-20170819_152459.jpg'

简单、明确且便携。


也许还有一个改进。如果您大致知道将生成多少张图像,您可以用零填充数字,以便文件名按顺序排序。例如,如果您知道最多有 10000 个,那么您可以这样做

file_name_format = "{:s}-{:04d}-{:%Y%m%d_%H%M%S}.{:s}"

给你一个像这样的文件名

File name = 'non_detected-0000-20170819_152459.jpg'

关于python - (OpenCV) 将日期放在文件名中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45769264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com