6、读取YUV数据并理解YUV数据

本文介绍了如何使用ffmpeg将mp4视频转换为YUV格式,重点探讨了YUV420SP(NV12)的格式特点,并通过代码示例展示了YUV到RGB的转换,帮助读者深入理解视频分量数据。
摘要由CSDN通过智能技术生成

基本思想:跟这大佬学习视频,坚持记笔记,推动学完视频,yuv420sp=NV12

首先保证window11电脑上配置了ffmpeg库,可以在命令行使用,测试视频

链接: https://pan.baidu.com/s/1zmjCmgVxSjqPDXVmbr-ghA?pwd=ayeu 提取码: ayeu

一、使用ffmpeg将mp4视频转成yuv格式

 先播放一下视频

G:\>ffplay sxj731533730.mp4
ffplay version 4.4-full_build-www.gyan.dev Copyright (c) 2003-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-shared --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --en
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
要在Matlab中读取YUV422图像数据,可以按照以下步骤进行: 1. 打开YUV文件: 使用Matlab的fopen函数打开YUV文件,选择适当的打开模式(例如,'r'表示只读模式)。例如,可以使用以下代码打开名为"image.yuv"的YUV文件: fid = fopen('image.yuv', 'r'); 2. 读取图像参数: 根据YUV图像的宽度、高度和分量数,确定读取图像数据所需的字节数。例如,如果YUV图像的宽度为w,高度为h,分量数为2(Y和UV),那么读取图像数据所需的字节数应为2 * w * h。 3. 读取图像数据: 使用Matlab的fread函数读取YUV图像数据。根据图像数据的格式,按顺序读取Y、U和V分量的数据。例如,如果图像数据按照[Y1,U1,V1,Y2,U2,V2,...]的顺序排列,可以使用以下代码读取图像数据: imageData = fread(fid, numBytes, 'uint8'); 4. 重构图像: 根据YUV422的格式,图像数据可以按照[Y1,U1,Y2,V1,...]的顺序排列。因此,需要根据图像宽度和高度将读取图像数据重新排列为正常的RGB图像。可以使用Matlab的reshape函数和cat函数来完成这一任务。例如,如果要将YUV图像数据重构为一个RGB图像(image),可以使用以下代码: Y = imageData(1:2:end); U = imageData(2:4:end); V = imageData(3:4:end); Y = reshape(Y, width, height)'; U = reshape(U, width/2, height)'; V = reshape(V, width/2, height)'; image = cat(3, Y, U, V); 5. 关闭文件: 使用Matlab的fclose函数关闭打开的YUV文件。例如,可以使用以下代码关闭文件: fclose(fid); 以上是在Matlab中读取YUV422图像数据的基本步骤。根据实际情况和图像数据的格式,可能需要进行适当的调整和处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sxj731533730

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值