1、为什么要RGB转YUV(这位博主说的很清楚:https://www.cnblogs.com/zhengjianhong/p/7872459.html,我现在主要是用代码实现RGB转YUV)。
2、Rgb2Yuv.h
//RGB转YUV的数学公式
#define GetY(R, G, B) (unsigned char)(+0.2990 * R + 0.5870 * G + 0.1140 * B + 0)
#define GetU(R, G, B) (unsigned char)(-0.1687 * R - 0.3313 * G + 0.5000 * B + 128)
#define GetV(R, G, B) (unsigned char)(+0.5000 * R - 0.4187 * G - 0.0813 * B + 128)
class Rgb2Yuv
{
public:
Rgb2Yuv(void);
~Rgb2Yuv(void);
public:
/*******************************************
yuv422Planar format 数据排列:
Y0Y1Y2Y3....
U0U2U4....
V1V3V5....
********************************************/
void rgb2yuv422Planar(const unsigned char *rgbData, int width, int height, int widthstep, unsigned char*yuvData);