目录
- 概述
- 环境准备
- 完整代码
- 示例代码详解
- 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)!
精彩评论