RGB2YUV相互转换
实验思路:
在电视系统中,将红绿蓝称为三基色,分别用( R e ) , ( G e ) , ( G b ) 表示。电视显示器上五颜六色的光便是由这三种色彩的荧光粉调制而成的。
亮度方程:Y=0.2990R+0.5870G+0.1140B
由此可得:
Y=0.2990R+0.5870G+0.1140B
U = B − Y = − 0.2990 R − 0.5870 G + 0.8860 B
V = R − Y = 0.7010 R − 0.5870 G − 0.1140 B
这里在计算RBG时应先将UV的值减128。
这里YUV采用的是4:2:0格式,即色度信号是亮度信号取样频率的四分之一。
main函数关键代码:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include “rgb2yuv.h”
#define u_int8_t unsigned __int8
#define u_int unsigned __int32
#define u_int32_t unsigned __int32
#define FALSE false
#define TRUE true
int main(int argc, char** argv)
{
u_int frameWidth = 352; /width/
u_int frameHeigh