【问题标题】:MATLAB return image frames from videoMATLAB 从视频中返回图像帧
【发布时间】:2016-07-13 21:05:15
【问题描述】:

我有一个处理视频并从中返回几张图像的函数。

我这样做是通过在包含我想要的帧的函数中创建一个新视频并返回视频来实现的,这是我再次读取视频以处理它的下一个函数。

有没有更快的方法呢?例如返回包含图像的数组并读取它们?

【问题讨论】:

  • “视频”是什么意思?不就是解码帧的 3D 数组吗?
  • 我不熟悉怎么做...如何将图像添加到数组中并从该数组中一张一张地读取它们
  • 我目前正在创建一个新视频并再次将其解码为帧!我认为数组会更容易且成本更低......

标签: matlab video-processing


【解决方案1】:

您可以将解码后的帧作为 3-D 数组传递。例如,如果您有两个二维帧 frame1frame2,您可以将它们沿第三维连接起来,如下所示:

M = cat(3, frame1, frame2);

要从 3-D 数组中提取帧,只需指定第三个坐标。例如,要获取frame1,您可以编写:

frame1 = M(:, :, 1);

这可以让您避免在函数调用之间对帧进行编码和解码的问题,并防止由于连续编码而导致视频质量下降。

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多