【C语言】MATLAB中Jet伪彩色模式在C语言中的实现

项目中需要在嵌入式系统中驱动一块彩屏,需要用颜色来表征一个信号的强度,当时就想到了matlab里的jet配色,无奈网上没有类似代

码,只好自己写了一套函数

屏幕支持16位彩色,为RGB565格式,在此贴出代码,希望可以帮大家节省时间。


IPS_GetRGB565Color

  • 由R,G,B颜色分量获得RGB565格式的色彩
  • 输入R,G,B分量
  • 返回RGB565格式的16位彩色 
u16 IPS_GetRGB565Color(u8 R,u8 G,u8 B)
{
	u16 rgb565;
	rgb565  = (R>>3)<<11;
	rgb565 |= (G>>2)<<5;
	rgb565 |= (B>>3);
	return rgb565;
}

IPS_GetJetColor

  • 根据输入的强度值(0-255)返回对应的Jet伪彩色模型配色
  • 输入强度值val(0-255)
  • 输出RGB565格式的Jet伪彩色模型配色
u16 IPS_GetJetColor(u8 val)
{
	u8 R,G,B;
	R = ( val > 128 ) ? (val < 192 ) ? ( val - 128 ) * 4 : 255 : 0;
	G = ( val < 64 ) ? val * 4 : ( val > 192) ? (256 - (4 * ( val - 192 ) ) ) : 255;
	B = ( val <= 64 ) ? 255 : ( val > 128 ) ? 0 : (256 - (4 * ( val - 128) ) );
	return IPS_GetRGB565Color(R,G,B);
}

实际效果:

如左侧彩条

发布了44 篇原创文章 · 获赞 203 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/ReadAir/article/details/102055453