【OpenCV基础入门】视频读取与简单处理

视频读取与简单处理

在OpenCV中我们还可以指定imread的模式,所支持的选项包括:

  • cv2.IMREAD_COLOR:该模式是默认选项,提供3通道的BGR图
    像,每个通道一个8位值(0~255)。

  • cv2.IMREAD_GRAYSCALE:该模式提供8位灰度图像。

  • cv2.IMREAD_ANYCOLOR:该模式提供每个通道8位的BGR图
    像或者8位灰度图像,具体取决于文件中的元数据。

  • cv2.IMREAD_UNCHANGED:该模式读取所有的图像数据,包
    括作为第4通道的α或透明度通道(如果有的话)。

  • cv2.IMREAD_ANYDEPTH:该模式加载原始位深度的灰度图
    像。例如,如果文件以这种格式表示一幅图像,那么它提供每个通道
    16位的一幅灰度图像。

  • cv2.IMREAD_ANYDEPTH|cv2.IMREAD_COLOR:该组合模式
    加载原始位深度的BGR彩色图像。

  • cv2.IMREAD_REDUCED_GRAYSCALE_2:该模式加载的灰度
    图像的分辨率是原始分辨率的1/2。例如,如果文件包括一幅640×480
    的图像,那么它加载的是一幅320×240的图像。

  • cv2.IMREAD_REDUCED_COLOR_2:该模式加载每个通道8位
    的BGR彩色图像,分辨率是原始图像的1/2。

  • cv2.IMREAD_REDUCED_GRAYSCALE_4:该模式加载灰度图
    像,分辨率是原始图像的1/4。

  • cv2.IMREAD_REDUCED_COLOR_4:该模式加载每个通道8位
    的彩色图像,分辨率是原始图像的1/4。

  • cv2.IMREAD_REDUCED_GRAYSCALE_8:该模式加载灰度图
    像,分辨率是原始图像的1/8。

  • cv2.IMREAD_REDUCED_COLOR_8:该模式加载每个通道8位
    的彩色图像,分辨率为原始图像的1/8。

OpenCV提供了VideoCapture和VideoWriter类,支持各种视频文件
格式。支持的格式取决于操作系统和OpenCV的构建配置,但是通常情
况下,假设支持AVI格式是安全的。通过它的read方法,VideoCapture
对象可以依次查询新的帧,直到到达视频文件的末尾。每一帧都是一
幅BGR格式的图像。

1.导入模块

import cv2
import matplotlib.pyplot as plt
import numpy as np

2.视频图像读取

vc = cv2.VideoCapture("diqiu.mp4")  # 传入视频流

3.检查是否打开正确

# 检查是否打开正确
if vc.isOpened():  # 检查是否能打开
    open, frame = vc.read()  # read逐帧读取,帧读入返回值open为True,第二个返回值为当前帧的图像值
else:
    open = False

原视频如下

diqiu

# 进一步放入循环中
while open:
    ret, frame = vc.read()
    if frame is None:
        break
    if ret == True:
        # 当前这一帧正确,进行当前图像的处理
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 当前帧转换为灰度图
        cv2.imshow('result', gray)
        # 循环中可以实现逐帧播放
        if cv2.waitKey(100) & 0xFF == 27:  # 这里设置当前帧的一个等待时间与ESC退出键的命令来退出视频
            break
vc.release()
cv2.destroyAllWindows()

到此就可以直接在屏幕上输出逐帧转化为灰度图的视频流,如下

你可能感兴趣的:(OpenCV,opencv,音视频,python,jupyter)