数码相机(YUV422)发送到数码像框(RGB565),调试成功和大家分享。谢谢!
数码相机的代码:
/*
R = Y + 1.4075 *(V-128)
G = Y – 0.3455 *(U –128) – 0.7169 *(V –128)
B = Y + 1.779 *(U – 128)
*/
unsigned char GetYUVR(int nY,int nU,int nV)
{
int nR; //V=nV-128
nR = nY + (nV-128)+((nV-128)*103>>8);// v + ((v * 103) >> 8);
//overflow?
if( nR > 255 )
nR = 255;
if( nR < 0 )
nR = 0;
return nR;
}
unsigned char GetYUVG(int nY,int nU,int nV)
{
int nG; //U = nU-128
nG = nY - (((nU-128)*88>>8)+((nV-128)*183>>8));//((u * 88) >> 8) +((v * 183) >> 8);
//overflow?
if( nG > 255 )
nG = 255;
if( nG < 0 )
nG = 0;
return nG;
}
unsigned char GetYUVB(int nY,int nU,int nV)
{
int nB;
nB = nY + (nU-128)+((nU-128)*198>>8);//u +( (u*198) >> 8);
//overflow?
if( nB > 255 )
nB = 255;
if( nB < 0 )
nB = 0;
return nB;
}
////////////////////////////////////////////////////////
nPixelData = ( nR&0xF8 ) | nG>>5;
SoPbSPITXByte( nPixelData);//R5G6B5 :high
nPixelData = ( nG<<3 &0xE0) | nB>>3;
SoPbSPITXByte( nPixelData );//R5G6B5 :Low
//////////////////////////////////////////////////////////
想看看彩色图片的黑白效果吗?看看:
nPixelData = ((* nPIC)&0xF8 )| (* nPIC)>>5 ;//R=G=B=Y:R5G6B5 :high
SoPbSPITXByte( nPixelData);//(*(unsigned char*)DataAddr);//
nPixelData = ((* nPIC)<<3 &0xE0) | (* nPIC)>>3;//Y0//R=G=B=Y:R5G6B5 :Low
SoPbSPITXByte( nPixelData );//R5G6B5 :Low
就贴到这里,谢谢!
数码相机的代码:
/*
R = Y + 1.4075 *(V-128)
G = Y – 0.3455 *(U –128) – 0.7169 *(V –128)
B = Y + 1.779 *(U – 128)
*/
unsigned char GetYUVR(int nY,int nU,int nV)
{
int nR; //V=nV-128
nR = nY + (nV-128)+((nV-128)*103>>8);// v + ((v * 103) >> 8);
//overflow?
if( nR > 255 )
nR = 255;
if( nR < 0 )
nR = 0;
return nR;
}
unsigned char GetYUVG(int nY,int nU,int nV)
{
int nG; //U = nU-128
nG = nY - (((nU-128)*88>>8)+((nV-128)*183>>8));//((u * 88) >> 8) +((v * 183) >> 8);
//overflow?
if( nG > 255 )
nG = 255;
if( nG < 0 )
nG = 0;
return nG;
}
unsigned char GetYUVB(int nY,int nU,int nV)
{
int nB;
nB = nY + (nU-128)+((nU-128)*198>>8);//u +( (u*198) >> 8);
//overflow?
if( nB > 255 )
nB = 255;
if( nB < 0 )
nB = 0;
return nB;
}
////////////////////////////////////////////////////////
nPixelData = ( nR&0xF8 ) | nG>>5;
SoPbSPITXByte( nPixelData);//R5G6B5 :high
nPixelData = ( nG<<3 &0xE0) | nB>>3;
SoPbSPITXByte( nPixelData );//R5G6B5 :Low
//////////////////////////////////////////////////////////
想看看彩色图片的黑白效果吗?看看:
nPixelData = ((* nPIC)&0xF8 )| (* nPIC)>>5 ;//R=G=B=Y:R5G6B5 :high
SoPbSPITXByte( nPixelData);//(*(unsigned char*)DataAddr);//
nPixelData = ((* nPIC)<<3 &0xE0) | (* nPIC)>>3;//Y0//R=G=B=Y:R5G6B5 :Low
SoPbSPITXByte( nPixelData );//R5G6B5 :Low
就贴到这里,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)