Matlab中的YUV视频处理

Posted

技术标签:

【中文标题】Matlab中的YUV视频处理【英文标题】:YUV video processing in Matlab 【发布时间】:2013-10-13 08:08:43 【问题描述】:

我正在使用我从互联网上获得的这个功能:

>>[Y,U,V]=yuv_import('test.yuv',[176 144],150,0)

我来自:Convert YUV CIF 4:2:0 video file to image files

它打印出 yuv 文件 test.yuv 的 Y、U 和 V 分量。当我输入时:

>>Y

它显示了:

Y = 

  Columns 1 through 5

    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]

............... 

  Columns 146 through 150

    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]    [144x176 double]

还有..

>>size(Y)

显示:

ans =

     1   150

对 U 和 V 组件执行相同操作也显示了相同的结果。

还有..

>>Y(150)

显示:

ans = 

    [144x176 double]

我想要的是为 Y、U 和 V 创建一个数组,其尺寸为 [numberOfFrames 高度宽度] 或 [150 144 176]。我该怎么做?

【问题讨论】:

【参考方案1】:

您的输出是元胞数组。

>> Y = cat(3, Y: ); 

应该为您解决问题。

【讨论】:

拥有 [numberOfFrames 高度宽度] 后,如何将其转换回原始状态? @mc8 “原创”是什么意思?一个单元阵列?一个RGB?您可以使用permute[nFrames H W] 更改为[H W nFrames]。您可以使用mat2cell 转换回元胞数组... 你能举个例子,说明如何使用 mat2cell 使用 size [numberOfFrames height width] 到 size [1 numberOfFrames] 或 [1 150] 像上面一样?

以上是关于Matlab中的YUV视频处理的主要内容,如果未能解决你的问题,请参考以下文章

音视频处理之采样数据20180223

音视频处理之编码原理20170905

4412 移植x264并且YUV422转x264

altera公司FPGA的视频流帧抓取

将 H264 视频转换为原始 YUV 格式

#yyds干货盘点#YUV采样