import cv2
|
import time
|
|
# 摄像头索引号,通常为0表示第一个摄像头
|
camera_index = 0
|
|
# 打开摄像头
|
cap = cv2.VideoCapture(camera_index)
|
|
# 检查摄像头是否成功打开
|
if not cap.isOpened():
|
print("无法打开摄像头")
|
exit()
|
|
# 图片保存路径
|
save_path = "captured_images/"
|
|
# 检查保存路径是否存在,如果不存在则创建
|
import os
|
|
if not os.path.exists(save_path):
|
os.makedirs(save_path)
|
|
# 目标图像尺寸
|
target_width = 640
|
target_height = 480
|
|
# 计时器
|
start_time = time.time()
|
|
# 循环读取摄像头画面
|
while True:
|
ret, frame = cap.read()
|
|
if not ret:
|
print("无法读取摄像头画面")
|
break
|
|
# 调整图像尺寸
|
resized_frame = cv2.resize(frame, (target_width, target_height))
|
|
# 获取当前时间
|
current_time = time.time()
|
|
# 如果距离上一次保存已经过去1秒,则保存当前画面
|
if current_time - start_time >= 1.0:
|
# 生成保存文件名,以当前时间命名
|
save_name = time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".jpg"
|
# 保存调整尺寸后的图片
|
cv2.imwrite(save_path + save_name, resized_frame)
|
print("保存图片:", save_name)
|
# 重置计时器
|
start_time = time.time()
|
|
# 显示画面
|
cv2.imshow("Camera", resized_frame)
|
|
# 检测按键,如果按下q键则退出循环
|
if cv2.waitKey(1000) & 0xFF == ord('q'):
|
break
|
|
# 关闭摄像头
|
cap.release()
|
|
# 关闭所有窗口
|
cv2.destroyAllWindows()
|