为什么写这个?
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格式,组合数据,存储;
原始图像