OpenCV图像与视频文件处理入门教程
OpenCV图像与视频文件处理入门教程
在计算机视觉领域,图像和视频处理是核心要素。无论是作为输入数据还是最终输出结果,图像和视频都扮演着重要角色。本文将介绍如何使用OpenCV处理构建计算机视觉应用程序所必需的图像和视频。
相关函数
cv2.imwrite():用于保存图像文件。
cv2.VideoCapture():这是一个用于从不同来源捕获视频的类,包括图像序列、视频文件和相机。它还可以实时捕获相机画面。
cv2.VideoCapture()
所需的参数是index_camera
,它指示要读取的相机的索引。如果计算机连接了一个摄像头,则其索引为0;如果有第二个摄像头,可以通过传递参数值1来选择它,以此类推。需要注意的是,该参数的类型是int。建立一个要使用的对象
capture
:capture = cv2.VideoCapture(args.index_camera)
使用
capture.isOpened()
检查连接是否已正确建立。如果无法建立连接,该函数返回False;如果正确初始化,则返回True。使用
capture.read()
从capture
对象获取相机帧。使用
capture.release()
释放capture
对象的所有内容。
cv2.cvtColor():用于颜色空间转换。
cv2.VideoWriter():用于保存视频文件。
指定视频编码器:
cv2.VideoWriter_fourcc(*'XVID')
或者cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
cv2.VideoWrite
的最后一个参数值为False表示以灰度方式写入视频。如果我们想创建彩色视频,最后一个参数为True。下图展示了OpenCV中使用
cv2.VideoWriter()
创建视频文件时应考虑的主要因素。在创建的名为video_example.avi
的视频中,FOURCC值为XVID,视频文件格式为AVI(*.avi),同时最后,应设置视频每一帧的FPS和尺寸。同时,
cv2.VideoWriter()
的最后一个参数值是False表示以灰度方式写入视频。如果我们想要创建彩色视频,最后一个参数值为True。out_gray = cv2.VideoWriter(args.output_video_path, fourcc, int(fps), (int(frame_width), int(frame_height)), False)
图像的读取与写入
1.1 读取图像
1.2 写入图像
1.3 计算机视觉项目处理流程示例
读取相机画面和视频文件
2.1 读取相机画面
2.2 访问捕获画面对象的属性
2.3 保存相机画面
2.4 读取视频文件
保存视频文件
3.1 计算帧率FPS
3.2 写入视频文件流程
视频文件属性详解
4.1 获取视频对象属性
4.2 视频属性的使用
总结归纳
计算机视觉项目中的常见信息流是先加载一些图像,进行处理,最后输出处理后的图像。因此,处理图像和文件是计算机视觉项目的关键要素。就视频流而言,主要类包括cv2.VideoCapture
和cv2.VideoWriter
。在编写视频文件时,需要注意视频编解码器和视频文件格式间的匹配,典型的编解码器包括DIVX、XVID、X264和MJPG,而典型的视频文件格式包括AVI(.avi)、MP4(.mp4)、QuickTime(.mov)和Windows Media Video(.wmv)。
同时介绍了FPS的概念以及如何在程序中计算它。此外,展示了如何获取cv2.VideoCapture
对象的所有属性,以及如何使用它们加载视频并反向播放。