opencv视频文件的读写

目录

opencv视频文件的读写

OpenCV调用电脑摄像头


 

opencv视频文件的读写


在OpenCV中,你可以使用 cv2.VideoCapture 类 来读取视频文件,使用 cv2.VideoWriter 类来写入视频文件。

下面是一个简单的例子,演示如何使用OpenCV读取视频文件、处理每一帧,以及将处理后的帧写入新的视频文件
 

import cv2

# 打开视频文件
input_video_path = r'D:\untitled13\9.2\.vscode\demo01.py\input_video.mp4'
cap = cv2.VideoCapture(input_video_path)

# 检查视频是否成功打开
if not cap.isOpened():
    print("Error: Could not open video.")
    exit()

# 获取视频的帧率、宽度和高度
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 定义输出视频文件的路径和编解码器
output_video_path = 'output_video.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_video_path, fourcc, fps, (width, height))

# 处理每一帧
while True:
    ret, frame = cap.read()

    # 如果视频读取结束,退出循环
    if not ret:
        break

    # 在这里可以对每一帧进行处理,例如进行图像处理、分析等

    # 写入处理后的帧到输出视频文件
    out.write(frame)

    # 显示原始视频帧(可选)
    cv2.imshow('Original Video', frame)

    # 检查是否按下 'q' 键,如果是则退出循环
    if cv2.waitKey(25) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()

请注意,上述代码中包含了一个简单的图像处理部分,你可以在此处添加你自己的图像处理代码。此外,如果你不需要实时显示原始视频,你可以注释掉相关的代码。在这个例子中,按下 'q' 键将退出循环。

记得替换 input_video.mp4 和 output_video.mp4 为你的输入和输出视频文件的路径。

OpenCV调用电脑摄像头


使用OpenCV调用电脑摄像头非常简单。以下是一个基本的示例代码,演示如何使用OpenCV读取摄像头实时视频流:

import cv2

# 打开摄像头
cap = cv2.VideoCapture(0)  # 0表示第一个摄像头,如果有多个摄像头可以尝试其他数字

# 检查摄像头是否成功打开
if not cap.isOpened():
    print("Error: Could not open camera.")
    exit()

# 获取摄像头的帧宽度和帧高度
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

while True:
    # 读取摄像头的每一帧
    ret, frame = cap.read()

    # 如果帧读取失败,退出循环
    if not ret:
        print("Error: Could not read frame.")
        break

    # 在这里可以对每一帧进行处理,例如进行图像处理、分析等

    # 显示实时视频流
    cv2.imshow('Camera Feed', frame)

    # 检查是否按下 'q' 键,如果是则退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放摄像头资源
cap.release()
cv2.destroyAllWindows()


 

在上述代码中, cv2.VideoCapture(0) 表示打开第一个摄像头。如果你有多个摄像头,可以尝试更改数字以选择其他摄像头。如果使用笔记本电脑内置摄像头,通常使用  0 即可。

这段代码会打开摄像头并显示实时视频流。按下 q 键会退出循环,释放摄像头资源。

相关推荐

  1. OpenCV支持哪些类型文件格式

    2023-12-23 06:54:04       17 阅读
  2. c++文件

    2023-12-23 06:54:04       36 阅读
  3. C++文件

    2023-12-23 06:54:04       45 阅读
  4. [C#]文件-1

    2023-12-23 06:54:04       37 阅读
  5. C++二进制文件

    2023-12-23 06:54:04       7 阅读
  6. python文件

    2023-12-23 06:54:04       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-23 06:54:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-23 06:54:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-23 06:54:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-23 06:54:04       18 阅读

热门阅读

  1. 【cesium-2】Cesium相机系统

    2023-12-23 06:54:04       43 阅读
  2. R-列表、矩阵、数组转化为向量

    2023-12-23 06:54:04       40 阅读
  3. 【数据分析】数据指标的分类及应用场景

    2023-12-23 06:54:04       38 阅读
  4. RabbitMQ消息确认机制

    2023-12-23 06:54:04       41 阅读
  5. Node.js —— EventEmitter

    2023-12-23 06:54:04       41 阅读