【OpenCV】视频操作(一)

本文介绍了如何使用Python的OpenCV库进行本地视频文件的读取、参数获取、显示及保存,同时涵盖摄像头操作的相关步骤。涉及关键函数如VideoCapture、get()和imshow(),以及常见技术参数的解读。
摘要由CSDN通过智能技术生成

一、本地视频文件操作

1、读取

import cv2

video_path = 'xx.mp4'
capture = cv2.VideoCapture(video_path)
  • 判断文件是否打开(VideoCapture 类读取视频时判断视频是否损坏或路径存在问题,导致视频无法读取,若返回False,则视频存在以上情况,若返回True则视频正常打开)
capture.isOpened()

2、视频参数获取

2.1、参数介绍

序号参数解释
0

CAP_PROP_POS_MSEC

以毫秒为单位的视频文件的当前位置或视频捕获时间戳

1

CAP_PROP_POS_FRAMES

接下来要解码/捕获的帧的基于 0 的索引

2

CAP_PROP_POS_AVI_RATIO

视频文件的相对位置:0:开头,1 :结尾

3

CAP_PROP_FRAME_WIDTH

获取视频宽度

4

CAP_PROP_FRAME_HEIGHT

获取视频长度

5

CAP_PROP_FPS

计算视频帧速率

6

CAP_PROP_FOURCC

编解码器的 4 字符代码

7

CAP_PROP_FRAME_COUNT

计算视频总帧数

8

CAP_PROP_FORMAT

Format of the Mat objects returned by retrieve().

9

CAP_PROP_MODE

Backend-specific value indicating the current capture mode.

10

CAP_PROP_BRIGHTNESS

图像亮度(仅适用于相机)

11

CAP_PROP_CONTRAST

图像对比度(仅适用于相机)

12

CAP_PROP_SATURATION

图像饱和度(仅适用于相机)

13

CAP_PROP_HUE

图像色调(仅适用于相机)

14

CAP_PROP_GAIN

图像增益(仅适用于相机)

15

CAP_PROP_EXPOSURE

图像曝光(仅适用于相机)

16

CAP_PROP_CONVERT_RGB

指示图像是否应转换为 RGB 的布尔指标

17

CAP_PROP_WHITE_BALANCE_U

白平衡设置的U值(注:目前仅DC1394 v 2.x后端支持)

18

CAP_PROP_WHITE_BALANCE_V

白平衡设置的V值(注:目前仅DC1394 v 2.x后端支持)

19

CAP_PROP_RECTIFICATION

立体相机的整流标志(注意:目前仅支持 DC1394 v 2.x 后端

20

CAP_PROP_ISO_SPEED

相机的 ISO 速度(注意:目前仅支持 DC1394 v 2.x 后端)

21

CAP_PROP_BUFFERSIZE

内部缓冲存储器中存储的帧数(注意:目前仅支持 DC1394 v 2.x 后端)

2.2、用法

  • 以计算帧率为例
video_path = 'xx.mp4'
capture = cv2.VideoCapture(video_path)
capture.get(cv2.CAP_PROP_FPS)
  • 此参数位于第六位置,故也可用位置信息代替
video_path = 'xx.mp4'
capture = cv2.VideoCapture(video_path)
capture.get(5)

3、显示

while True:
    ret,frame = cap.read()
    if ret:
        cv2.imshow('',frame)
        if cv2.waitKey(20) & 0xFF == ord('q'):   #按键事件,如果按下q键,则停止播放且退出
            break
    else:
        break

capture.release()
cv2.destroyAllWindows()

4、将视频文件保存为本地图片

img_path = '要保存的路径'
video_path = 'xx.mp4'
num = 0

capture = cv2.VideoCapture(video_path)
while True:
    ret,frame = cap.read()
    if ret:
        cv2.imwrite(os.path.join(img_path,str(num) + '.jpg'),frame)   
        num+=1
    else:
        break

二、摄像头操作

1、读取

  • "0":代表电脑内置摄像头
  • "1":代表电脑外部摄像头
import cv2
capture = cv2.VideoCapture(0)
capture = cv2.VideoCapture(1)
  • 从IP地址读取
capture = cv2.VideoCapture(IP)

2、显示

代码同视频文件操作

3、保存

代码同视频文件操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值