【YUV】YUV图像详解(二)—— YUV图像解析代码示例

<> 博客简介:Linux、rtos系统,arm、stm32等芯片,嵌入式高级工程师、面试官、架构师,日常技术干货、个人总结、职场经验分享

<> 公众号:嵌入式技术部落

<> 系列专栏:C/C++、Linux、rtos、嵌入式开发、流媒体、数据结构、网络协议、开源库、CMake、Makefile、架构设计模式等

前言

通过之前的文章【YUV】YUV图像详解(一)——格式详解,我们说过,我们将通过代码示例对YUV图片进行解析,以及推荐好用的查看YUV图像的工具软件,以便使读者更好的理解YUV。

一、YUV图像查看工具

先向大家推荐两款比较常用的 YUV 图像的查看工具----YUV Eye 和 7yuv,大家可以使用这两个工具,查看 YUV 图像。有的时候在进行开发调试的时候,有这样的工具会方便很多。

1、YUV Eye

(1) 下载地址:YUV Eye 3.0.0
(2) 解压,免安装,但是需要注册账号,在解压后的文件夹中找到 YuvEye.exe,双击打开,注册成功即可开始使用。

2、7yuv

(1) 下载地址:7yuv
(2) 需要安装,且需要license,不过此下载地址下载的是破解版的。

破解方法,7yuv.2.5-patch-URET.exe拷贝至安装目录,双击7yuv.2.5-patch-URET.exe,点击PATCH按钮,即完成破解,点击EXIT退出。

有任何疑问可评论区交流沟通,或关注公众号嵌入式技术部落,私信交流沟通。

二、代码示例


使用上图 input.jpg 来进行代码示例,图片分辨率为480*320。

1、分离420p

使用ffmpeg将指定的图片转为 yuv420p (I420) 格式

ffmpeg -i input.jpg -pix_fmt yuv420p yuv420p.yuv

根据之前文章【YUV】YUV图像详解(一)——格式详解,我们了解到,I420存储方式为

Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U U U
U U U
U U U
V V V
V V V
V V V

分离YUV分量:

void split_yuv420p_I420(char *inputPath, int width, int height) {
   
    FILE *fp_yuv = fopen(inputPath, "rb+");
    FILE *fp_y = fopen("output_420p_y.y", "wb+");
    FILE *fp_u = fopen("output_420p_u.y", "wb+");
    FILE *fp_v = fopen("output_420p_v.y", "wb+");
 
    unsigned char *</
  • 33
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值