博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QPainter draw yuv data
阅读量:4058 次
发布时间:2019-05-25

本文共 1605 字,大约阅读时间需要 5 分钟。

shell.albert@yantai:~/project/H.264/football>ls -l fb001.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb001.yuv

可以看出这一帧YUV的图像大小为126720字节,

已经图像分辨率为352*240,则有

Y平面大小为352*240=84480

而根据YUV420规定,每4Y共用一对UV,如下图

Y1 Y2

Y3 Y4

U1

V1

即每4Y对应一个U,每4Y对应一个V,则有

U平面大小为84480/4=21120

V平面大小为84480/4=21120

故该帧总大小为

Y+U+V=84480+21120+21120=126720

如果按照Planar平面存储方式,则先存储连接的Y,再存储连接的U,再存储连接的V,则对于该文件来讲。

84480个字节为Y通道数据,向后21120的字节为U通道数据,再向后21120的字节为V通道数据。

好了,下面我们就用Qt来读取这个YUV文件,并使用QPainter在窗体上绘制出来。

我们先只读取Y平面的数据显示出来看看。

void MainWindow::paintEvent(QPaintEvent *e){
QPainter tPainter(this); tPainter.drawText(10,50,"hello"); QString tYUVFile("/home/shell.albert/project/H.264/football/fb001.yuv"); QFile tFile(tYUVFile); if(!tFile.open(QIODevice::ReadOnly)) {
qDebug()<<"open file failed!"; return; } QByteArray tYData=tFile.read(84480); QByteArray tUData=tFile.read(21120); QByteArray tVData=tFile.read(21120); QByteArray tRestData=tFile.readAll(); qDebug()<<"Y:"<

PixelValue:4e4e4e

PixelValue:454545

PixelValue:545454

PixelValue:5c5c5c

PixelValue:484848

PixelValue:606060

PixelValue:646464

PixelValue:595959

PixelValue:666666

PixelValue:717171

PixelValue:6b6b6b

PixelValue:717171

PixelValue:6f6f6f

PixelValue:6c6c6c

PixelValue:7b7b7b

PixelValue:7e7e7e

PixelValue:7c7c7c

PixelValue:646464

PixelValue:696969

PixelValue:595959

PixelValue:606060

PixelValue:747474

PixelValue:737373

PixelValue:747474

PixelValue:6b6b6b

PixelValue:777777

PixelValue:ffffff88

PixelValue:757575

PixelValue:6b6b6b

PixelValue:6a6a6a

PixelValue:555555

PixelValue:494949

PixelValue:686868

转载地址:http://ykzji.baihongyu.com/

你可能感兴趣的文章
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
elastic-job 和springboot 集成干货
查看>>
php开发微服务注册到eureka中(使用sidecar)
查看>>
mybatis mybatis plus mybatis jpa hibernate spring data jpa比较
查看>>
支付宝生活号服务号 用户信息获取 oauth2 登录对接 springboot java
查看>>
CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
查看>>
uva 12260 - Free Goodies (dp,贪心 | 好题)
查看>>
uva-1427 Parade (单调队列优化dp)
查看>>
【设计模式】学习笔记13:组合模式(Composite)
查看>>
hdu 1011 Starship Troopers (树形背包dp)
查看>>
hdu 1561 The more, The Better (树形背包dp)
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
斯坦福大学机器学习——因子分析(Factor analysis)
查看>>
项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
查看>>
linux对于没有写权限的文件如何保存退出vim
查看>>
Windows下安装ElasticSearch6.3.1以及ElasticSearch6.3.1的Head插件
查看>>
IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
查看>>
【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
查看>>
ssh 如何方便的切换到其他节点??
查看>>