如何在 OpenCV 中从 YUV 文件读取帧?

2024-05-12

如何在 OpenCV 中从 YUV 文件读取帧?


我编写了一个非常简单的 python 代码来从二进制文件读取 YUV NV21 流。

import cv2
import numpy as np

class VideoCaptureYUV:
    def __init__(self, filename, size):
        self.height, self.width = size
        self.frame_len = self.width * self.height * 3 / 2
        self.f = open(filename, 'rb')
        self.shape = (int(self.height*1.5), self.width)

    def read_raw(self):
        try:
            raw = self.f.read(self.frame_len)
            yuv = np.frombuffer(raw, dtype=np.uint8)
            yuv = yuv.reshape(self.shape)
        except Exception as e:
            print str(e)
            return False, None
        return True, yuv

    def read(self):
        ret, yuv = self.read_raw()
        if not ret:
            return ret, yuv
        bgr = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_NV21)
        return ret, bgr


if __name__ == "__main__":
    #filename = "data/20171214180916RGB.yuv"
    filename = "data/20171214180916IR.yuv"
    size = (480, 640)
    cap = VideoCaptureYUV(filename, size)

    while 1:
        ret, frame = cap.read()
        if ret:
            cv2.imshow("frame", frame)
            cv2.waitKey(30)
        else:
            break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 OpenCV 中从 YUV 文件读取帧? 的相关文章

  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob
  • 是否可以将 ppm 文件从 p3 转换为 p6 或使用pillow lib 打开 ppm p3 文件

    是否可以将 ppm 文件从 p3 转换为 p6 或使用pillow lib 打开并读取 ppm p3 文件 我实际上有 ppm p3 文件 并尝试使用pillow lib 将它们转换为 jpg 但不幸的是 它不读取 p3 文件 只读取 p6
  • 估计 libGD 操作所需的内存

    在尝试使用 libGD 在 PHP 中调整图像大小之前 我想检查是否有足够的内存可用于执行该操作 因为 内存不足 会完全终止 PHP 进程并且无法捕获 我的想法是 原始图像和新图像中的每个像素 RGBA 需要 4 字节内存 check av
  • 如何在python 3.8中安装opencv-python

    我在 pycharm 中安装 opencv python 时遇到问题 打开 pycharm 后 我单击 设置 然后单击 项目解释器 单击 并搜索正确的模块 我开始安装 但失败了 Could not find a version that s
  • 如何选择图像插值方法? (Emgu/OpenCV)

    Emgu OpenCV的 net包装器 提供的图像调整大小功能可以使用四种插值方法中的任意一种 http www emgu com wiki files 1 4 0 0 html 596dd03d 301e d3c6 4c53 c42855
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 车辆分割和跟踪

    我已经从事一个项目一段时间了 目的是在无人机捕获的视频中检测和跟踪 移动 车辆 目前我正在使用 SVM 该 SVM 接受了从车辆和背景图像中提取的局部特征的特征袋表示的训练 然后 我使用滑动窗口检测方法来尝试定位图像中的车辆 然后我想要跟踪
  • 用于测量图像中弯管长度的特征检测技术

    我有数百张来自荧光显微镜实验的 DNA 纳米管图像 我想使用图像处理以自动方式测量管长度的分布 这是显微镜图像示例 我尝试了一些使用 python 和 skimage 的特征提取方法 我尝试过使用 Canny 边缘检测 它成功地创建了每个纳
  • keras:zca 美白卡住了 train_datagen.fit()

    我尝试将 zca whitening 与 keras 图像处理选项一起使用 但计算陷入困境并且永远不会结束 我导致问题的代码部分如下所示 train datagen ImageDataGenerator rotation range 30
  • OpenCV功能类似于matlab的“查找”

    我正在寻找 openCV 中的一个函数来帮助我制作图像蒙版 例如在 MATLAB 中 B A or B 零 大小 A B A 10 c 有些功能可以让你通过mask向他们提出论据 按照您描述的方式创建面具 我认为您正在追求Cmp 或 Cmp
  • CV_MAT_ELEM 中的编译错误

    调用estimateRigidTransform 的结果是我得到一个名为 trans 的cv Mat 对象 为了检索其包含的矩阵 我尝试以这种方式访问 其元素 for i 0 i lt 2 i for j 0 j lt 3 j mtx j
  • 使用Python对图像进行反转和平移

    我编写了以下代码来循环遍历文件夹中的所有图像 创建其底片并将其保存在新的相似名称下 我怎样才能做同样的事情来将它们向右平移 5 个像素 Code from PIL import Image import PIL ImageOps impor
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • 带通滤波器不能旋转超过 90 度

    我试图实现以下 FFT 滤波器内核 This formula is missing with two squares under the sqrt 源代码 public partial class Form1 Form public For
  • OpenCV findContours() 仅返回一个外部轮廓

    我试图隔离验证码中的字母 我设法过滤验证码 结果是这个黑白图像 但是当我尝试使用 OpenCV 的 findContours 方法分离字母时 它只是发现了一个包裹整个图像的外部轮廓 从而产生了该图像 图像外部的黑色轮廓 我将此代码与 Pyt
  • 使用 OpenCV 描述符与 findFundamentalMat 匹配

    我之前发布了有关同一程序的问题 但没有收到答案 我已经纠正了当时遇到的问题 但又面临新的问题 基本上 我使用未校准的方法自动校正立体图像对的旋转和平移 我使用 SURF 等特征检测算法来查找两个图像 左右立体图像对 中的点 然后再次使用 S
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用

随机推荐