目录
- 概述
- 环境准备
- 完整代码
- 示例代码详解
- 1. 读取和显示图像
- 2. 读取和显示视频
- 总结
概述
OpenCV 是一个强大的计算机视觉库,广泛应用于图像处理和视频处理等领域。本文将详细介绍如何使用 OpenCV 在 python 中读取和显示图像以及视频,并通过具体的代码示例来展示整个过程。
环境准备
在开始之前,请确保已经安装了 OpenCV 库。如果没有安装,可以通过以下命令进行安装:
pip install opencv-python
完整代码
import cv2
def read_img():
"""
读取图片
:return:
"""
img = cv2.imread(r'./resources/lena.jpeg')
cv2.imshow('lena img', img)
cv2.waitKey(0)
def read_video():
"""
读取视频/摄像头
:return:
"""
# 视频路径为获取资源,id序号则为摄像头id,0为默认第一个摄像头id
cap = cv2.VideoCapture(r'./resources/video.mp4')
# cap = cv2.VideoCapture(0)
# cap propId 0-18
cap.set(3, www.devze.com800) # 3为宽
cap.set(4, 600) # 4为高
cap.set(10, 5) # 10为亮度
while True:
success, img = cap.read()
if success:
cv2.imshow('video', img)
else:
break
if cv2.waitKey(1) & 0xFF == ord('q'):
# 有按键则返回按键ASCII码,无按键则返回-1
# 取按键返回ASCII码二进制后8位,为按键'q'退出循环
break
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
# read_img()
read_video()
示例代码详解
1. 读取和显示图像
import cv2
def read_img():
"""
读取图片
:return:
"""
img = cv2.imread(r'./resources/lena.jpeg')
cv2.imshow('lena img', img)
cv2.waitKey(0)
读取图像:
img = cv2.imread(r'./resources/lena.jpeg')
使用 cv2.imread() 函数读取图像文件。路径使用原始字符串(r'...')以避免转义字符的问题。
显示图像:
cv2.imshow('lena img', img)
cv2.waitKey(0)
使用 cv2.imshow() 函数显示图像。第一个参数是窗口名称,第二个参数是要显示的图像。
cv2.waitKey(0) 使程序等待用户按键后退出。0 表示无限期等待。
2. 读取和显示视频
def read_video():
"""
读取视js频/摄像头
:return:
"""
# 视频路径为获取资源,id序号则为摄像头id,0为默认第一个摄像头id
cap = cv2.VideoCapture(r'./resources/video.mp4')
# cap = cv2.VideoCapture(0)
# cap propId 0-18
cap.set(3, 800) # 3为宽
cap.set(4, 600) # 4为高
cap.set(10, 5) # 10为亮度
while True:
success, img = cap.read()
if success:
cv2.imshow('video', img)
else:
python break
if cv2.waitKey(1) & 0xFF == ord('q'):
# 有按键则返回按键ASCII码,无按键则返回-1
# 取按键返回ASCII码二进制后8位,为按键'q'退出循环
www.devze.com break
cap.release()
cv2.destroyAllWindows()
读取视频或摄像头:
cap = cv2.VideoCapture(r'./resources/video.mp4') # cap = cv2.VideoCapture(0)
使用 cv2.VideoCapture() 函数读取视频文件或摄像头。传入视频文件路径或摄像头ID(例如 0 表示默认摄像头)。
设置视频属性:
cap.set(3, 800) # 3为宽 cap.set(4, 600) # 4为高 cap.set(10, 5) # 10为亮度
使用 cap.set() 方法设置视频捕获属性。参数 3 表示宽度,4 表示高度,10 表示亮度。
读取和显示视频帧:
while True:
success, img = cap.read()
if success:
cv2.imshow('video', img)
else:
break
使用 cap.read() 方法读取视频帧。如果读取成功,success 为 True,img 为当前帧的图像;否则,success 为 False,表示视频结束或读取失败。
按键检测:
if cv2.waitKey(1) & 0xFF == ord('q'):
break
使用 cv2.waitKey(1) 等待1毫秒,如果有按键按下,则返回按键的ASCII码。& 0xFF 用于取按键ASCII码的后8位。ord('q') 返回字符 ‘q’ 的ASCII码。如果按键为 ‘q’,则退出循环。
释放资源:
cap.release() cv2.destroyAllWindows()
使用 cap.release() 释放视频捕获对象。
使用 cv2.destroyAllWindows() 关闭所有OpenCV窗口。
主函数
if __name__ == '__main__':
# read_img()
read_video()
主函数:
if __name__ == '__main__': 确保当脚本直接运行时才执行以下代码。
调用 read_img() 或 read_video() 函数来读取和显示图像或视频。
总结
本文详细介绍了如何使用 OpenCV 在 Python 中读取和显示图像以及视频,并通过具体的代码示例展示了整个过程。通过使用 cv2.imread()、cv2.imshow()、cv2.VideoCapture() 和 cv2.waitKey() 等函数,我们可以轻松地处理图像和视频数据。
到此这篇关于使用OpenCV实现读取和显示图像与视频的文章就介绍到这了,更多相关OpenCV读取显示图像与视频内容请搜索编程客栈(www.devze.com)以前的文章或python继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
加载中,请稍侯......
精彩评论