使用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格式,组合数据,存储;

原始图像
MATLAB RGB转YUV YUV转RGB

YUV转RGB

1,确定宽高信息,用fread读入图像数据
2,根据不同格式分离YUV数据
3, 填充UV数据
4,利用公式转换为RGB数据
5,cat连接
6,判断区间,
7,写数据fwrite

上边RGB转换的YUV图像,不知道上传YUV,用yuv浏览器截个图吧
MATLAB RGB转YUV YUV转RGB

资源在审核,上传链接需要时间,有需求的朋友可以留言邮箱

相关文章:

  • 2021-10-07
  • 2022-12-23
  • 2021-10-23
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-02
  • 2021-07-04
  • 2021-06-24
  • 2022-12-23
  • 2022-01-20
  • 2021-06-01
相关资源
相似解决方案