MATLAB RGB转YUV YUV转RGB

本文介绍在MATLAB中如何进行RGB到YUV以及YUV到RGB的转换,作者指出网上的一些公式和代码存在偏色问题,并提供了自己验证过的正确转换方法,包括NV12和NV21等格式。还分享了相应的MATLAB源代码。
摘要由CSDN通过智能技术生成

使用Matlab,RGB转YUV,YUV转RGB

为什么写这个?

1,百度上看了很多人的回答,好多人列个公式,就完了。
2,也看了一些博客,好多人的代码逻辑清晰,但是自己运行发现RGB转到YUV,YUV转到RGB色彩不对,不是偏色,是不对。
3,然后自己写了一个,发现还是偏色,好在研究了两个小时找到哪里的问题了。目前RGB转YUV(NV12, NV21 YUV420P, YUV444)都是正常的。可以用yuv viewer查看。NV21转RGB也正常了

RGB转YUV

1,读RGB文件,
2,公式
%RGB_to_YUV
% Y = 0.299.*R+ 0.587.*G + 0.114.*B;
% U = -0.147.*R - 0.289.*G + 0.436.B+128;
% V = 0.615.R - 0.515.G - 0.100.B+128;
%%%%%%%%%%%%%%
%nv12->RGB,存储为test1.jpg
% R = y + 1.140.
(vv-128);
% G = y - 0.394.
(uu-128) - 0.581.
(vv-128);
% B = y + 2.032.
(uu-128);
这两个公式一定要配套,可以带入固定RGB试一下
3.按照不同YUV格式,组合数据,存储;

原始图像

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值