关于YUV的C++编程,应该对Y U V分别如何赋值才能出现黑色?
一开始有这样的定义:
unsigned char y[WIDTH*HEIGHT];
unsigned char cb[WIDTH*HEIGHT/4];
unsigned char cr[WIDTH*HEIGHT/4];
之后有这样的运用:
fread(y, Width*Height, 1, fp);
fread(cb, Width*Height/4, 1, fp);
fread(cr, Width*Height/4, 1, fp);
我想在最后结果显示出黑色,是这样赋值的:
unsigned char blacky[WIDTH*HEIGHT]={0x00};
unsigned char blackcb[WIDTH*HEIGHT/4]={0x80};
unsigned char blackcr[WIDTH*HEIGHT/4]={0x80};
for(int b=0;b<WIDTH*HEIGHT;b++) y[b]=blacky[b];
for(int c=0;c<WIDTH*HEIGHT/4;c++)
{
cb[c]=blackcb[c];
cr[c]=blackcr[c];
}
为什么无论我怎么改blacky它们三个数组的值,最后屏幕只会出现绿色?我应该怎么赋值??