OpenCV python 循环读取图片并显示
时间: 2023-07-02 10:03:39 浏览: 1067
可以使用OpenCV库中的`cv2.imread()`函数读取图片,并使用`cv2.imshow()`函数显示图片。同时,可以使用Python的循环语句来实现循环读取和显示多张图片。
以下是一个示例代码:
```python
import cv2
import os
# 图片文件夹路径
img_folder_path = './img_folder/'
# 循环读取图片并显示
for img_file in os.listdir(img_folder_path):
# 读取图片
img = cv2.imread(os.path.join(img_folder_path, img_file))
# 显示图片
cv2.imshow('image', img)
cv2.waitKey(0) # 显示窗口等待时间,0表示一直等待,单位为毫秒
# 关闭所有窗口
cv2.destroyAllWindows()
```
在上面的示例代码中,通过`os.listdir()`函数遍历指定文件夹中的所有文件,并使用`cv2.imread()`函数读取图片。然后使用`cv2.imshow()`函数显示图片,`cv2.waitKey()`函数等待按键输入,直到用户按下任意按键后才会继续执行下一张图片的显示。最后通过`cv2.destroyAllWindows()`函数关闭所有显示窗口。
相关问题
OpenCV Python循环读取图片
可以使用Python中的OpenCV库来实现循环读取图片。以下是一个示例代码:
```python
import cv2
import os
# 图片文件夹路径
img_folder = 'path/to/folder'
# 循环读取图片
for filename in os.listdir(img_folder):
img_path = os.path.join(img_folder, filename)
img = cv2.imread(img_path)
# 在这里进行对图片的处理,例如显示、保存等操作
# ...
```
在这个示例中,我们首先定义了一个图片文件夹的路径 `img_folder`。然后,我们使用 Python 自带的 `os` 库来遍历文件夹中的每个文件,并将其与文件夹路径拼接成完整的图片路径 `img_path`。最后,我们使用 OpenCV 中的 `cv2.imread()` 函数来读取图片。
在 `for` 循环中,我们可以对每个读取的图片进行处理,例如使用 `cv2.imshow()` 函数显示图片,或使用 `cv2.imwrite()` 函数将图片保存到磁盘中。
opencvpython读取视频流并保存
要读取视频流并保存为视频文件,您可以使用OpenCV库中的`VideoWriter`类。以下是一个示例代码,演示了如何读取视频流并将其保存为视频文件:
```python
import cv2
# 打开视频文件
cap = cv2.VideoCapture('your_video_file.mp4') # 或者使用摄像头:cap = cv2.VideoCapture(0)
# 检查视频是否成功打开
if not cap.isOpened():
print("无法打开视频文件")
exit()
# 获取视频流的宽度和高度
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建用于保存视频的VideoWriter对象
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 可根据需要选择视频编码器
out = cv2.VideoWriter('output_video.avi', fourcc, 20.0, (width, height))
while True:
# 逐帧读取视频流
ret, frame = cap.read()
# 检查是否已经到达视频末尾
if not ret:
break
# 在窗口中显示当前帧
cv2.imshow('Video', frame)
# 将当前帧写入输出视频文件
out.write(frame)
# 按下 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
```
在上述代码中,我们首先使用`cv2.VideoCapture()`函数打开视频文件或者连接到摄像头。然后,使用`cap.read()`逐帧读取视频流,并将每一帧显示在窗口中。同时,我们使用`cv2.VideoWriter()`创建一个用于保存视频的对象,并指定输出视频文件的名称、编码器、帧率和分辨率。在每一帧读取后,我们使用`out.write(frame)`将当前帧写入输出视频文件中。最后,我们需要释放资源,关闭窗口,并且调用`out.release()`来保存输出视频文件。
阅读全文