Python OpenCV 打开摄像头并每隔1秒保存图片
时间: 2023-05-31 09:03:00 浏览: 723
下面是Python OpenCV打开摄像头并每隔1秒保存图片的示例代码:
```python
import cv2
import time
cap = cv2.VideoCapture(0) # 打开摄像头
while True:
ret, frame = cap.read() # 读取摄像头数据
cv2.imshow("Camera", frame) # 显示摄像头画面
# 每隔1秒保存一张图片
if int(time.time()) % 1 == 0:
filename = "image_" + time.strftime("%Y%m%d_%H%M%S") + ".jpg" # 图片文件名
cv2.imwrite(filename, frame) # 保存图片
if cv2.waitKey(1) & 0xFF == ord('q'): # 按下q键退出
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 关闭窗口
```
这段代码首先打开摄像头,然后进入一个无限循环,在循环中读取摄像头数据,显示摄像头画面,并每隔1秒保存一张图片。图片文件名以当前时间命名,保存在当前目录下。如果按下q键,就退出循环,释放摄像头并关闭窗口。
相关问题
python opencv 读取摄像头并每隔一分钟,保存三秒的图片
可以使用Python中的OpenCV库和time库来实现。
首先,需要安装OpenCV库,可以使用以下命令在终端或命令行中进行安装:
```
pip install opencv-python
```
然后,可以使用以下代码来读取摄像头并保存图片:
```python
import cv2
import time
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置保存图片的目录和文件名的前缀
save_path = './images/camera_capture'
prefix = 'capture_'
# 设置保存图片的间隔时间和持续时间
interval = 60 # 每隔60秒保存一次
duration = 3 # 每次保存3秒
# 获取当前时间戳
start_time = time.time()
while True:
# 读取摄像头的画面
ret, frame = cap.read()
# 显示画面
cv2.imshow('frame', frame)
# 判断是否到了保存图片的时间
current_time = time.time()
if current_time - start_time > interval:
# 生成保存图片的文件名
timestamp = int(time.time())
filename = f'{prefix}{timestamp}.jpg'
# 保存图片
for i in range(duration):
ret, frame = cap.read()
cv2.imwrite(f'{save_path}/{filename}', frame)
time.sleep(1)
# 更新开始保存图片的时间戳
start_time = time.time()
# 按下q键退出程序
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 关闭摄像头和窗口
cap.release()
cv2.destroyAllWindows()
```
这段代码会每隔60秒保存一次图片,持续3秒钟。保存的图片会以时间戳作为文件名保存在指定的目录中。
注意:如果要在Windows系统上运行这个代码,需要将保存图片的路径中的斜杠(/)改为反斜杠(\)。
python opencv 读取摄像头并每隔一分钟,连续保存三秒的图片
可以使用Python的OpenCV库读取摄像头,并使用time库实现每隔一分钟保存三秒的图片。
以下是一个示例代码:
```python
import cv2
import time
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置图片保存路径
save_path = './images/'
# 定义保存图片的函数
def save_image():
# 获取当前时间作为文件名
file_name = time.strftime('%Y%m%d%H%M%S', time.localtime()) + '.jpg'
# 保存图片
cv2.imwrite(save_path + file_name, frame)
print('Image saved:', file_name)
# 定义计数器和时间戳
count = 0
timestamp = time.time()
while True:
# 读取一帧图片
ret, frame = cap.read()
# 每隔一分钟保存三秒的图片
if time.time() - timestamp >= 60:
if count < 3:
save_image()
count += 1
else:
# 计数器和时间戳归零
count = 0
timestamp = time.time()
# 显示图片
cv2.imshow('frame', frame)
# 按下q键退出循环
if cv2.waitKey(1) == ord('q'):
break
# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()
```
这段代码会打开摄像头并不断地读取图片,同时每隔一分钟保存三秒的图片到指定的路径。按下q键可以退出循环并关闭所有窗口。
阅读全文