问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

OpenCV图像与视频文件处理入门教程

创作时间:
作者:
@小白创作中心

OpenCV图像与视频文件处理入门教程

引用
1
来源
1.
https://www.naipings.cn/article/opencv02

在计算机视觉领域,图像和视频处理是核心要素。无论是作为输入数据还是最终输出结果,图像和视频都扮演着重要角色。本文将介绍如何使用OpenCV处理构建计算机视觉应用程序所必需的图像和视频。

相关函数

  1. cv2.imwrite():用于保存图像文件。

  2. 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对象的所有内容。

  1. cv2.cvtColor():用于颜色空间转换。

  2. 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.VideoCapturecv2.VideoWriter。在编写视频文件时,需要注意视频编解码器和视频文件格式间的匹配,典型的编解码器包括DIVX、XVID、X264和MJPG,而典型的视频文件格式包括AVI(.avi)、MP4(.mp4)、QuickTime(.mov)和Windows Media Video(.wmv)。

同时介绍了FPS的概念以及如何在程序中计算它。此外,展示了如何获取cv2.VideoCapture对象的所有属性,以及如何使用它们加载视频并反向播放。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号