关于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它们三个数组的值,最后屏幕只会出现绿色?我应该怎么赋值??
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它们三个数组的值,最后屏幕只会出现绿色?我应该怎么赋值??
...全文
相关推荐
I420toNV21(NV12)及绘制黑框
自封的纯C函数,YUVI420toNV21(NV12)代码及结果,绘制黑框及结果
BCB 图像点分析
对图像的点进行颜色分析,RGB,YUV,CY CU CV。
c++图像处理(第二讲)
C++图像处理 有理论 有源码 从基础逐步深入
opencv在android上灰阶化预览
利用opencv在Android上实现的灰阶化预览
【高速互连技术】基于线性均衡的PCIe链路扩展方案:重驱动器在高损耗通道中的信号完整性优化
内容概要:本文介绍了如何利用线性均衡技术扩展PCI Express(PCIe)链路的传输距离,重点探讨了重驱动器(Re-Driver)在补偿PCB和电缆信道损耗中的作用。文章回顾了Re-Driver的发展历程,分析其性能特点,解释其在不同信道环境下的应用条件,并强调线性操作对保持信号完整性及满足PCIe规范的重要性。通过眼图分析、频率响应和Tx预设波形等手段,展示了R


