import cv2
import datetime
import time
def capture_image(frame):
if frame is not None:
# 记录开始时间
start_time = time.time()
# 获取当前时间作为文件名
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"captured_image_{timestamp}.jpg"
# 保存图像
cv2.imwrite(filename, frame)
# 记录结束时间
end_time = time.time()
# 计算时间差
elapsed_time = end_time - start_time
print(f"图像已保存为 {filename}")
print(f"从点击按钮到保存图片的时间: {elapsed_time:.4f} 秒")
def start_camera():
# 打开相机
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
# 设置画面大小
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1200)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 900)
while True:
# 读取视频流
ret, frame = cap.read()
if not ret:
print("无法读取摄像头帧")
break
# 显示视频流
cv2.imshow('Camera', frame)
# 按下 's' 键保存图像
if cv2.waitKey(1) & 0xFF == ord('s'):
capture_image(frame)
# 按下 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放相机资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
if __name__ == "__main__":
start_camera()