温度数值转RGB

/*
	温度需先转换为0-255的灰度值;
	最终生成的rgb格式为16bit的ARGB;
*/
int TCtoRGB(int grayValue)
{
	int rgbValues[3] = {0};
	if (grayValue < 64)
	{
		rgbValues[2] = 0;
		rgbValues[1] = (int)(4 * grayValue);
		rgbValues[0] = 255;
	}
	else if (grayValue >= 64 && grayValue < 128)
	{
		rgbValues[2] = 0;
		rgbValues[1] = 255;
		rgbValues[0] = (int)(2 * 255 - 4 * grayValue);
	}
	else if (grayValue >= 128 && grayValue < 192)
	{
		rgbValues[2] = (int)(4 * grayValue - 2 * 255);
		rgbValues[1] = 255;
		rgbValues[0] = 0;
	}
	else
	{
		rgbValues[2] = 255;
		rgbValues[1] = (int)(4 * 255 - 4 * grayValue);
		rgbValues[0] = 0;
	}
	return ((rgbValues[2] << 7 & 0x7c00) | (rgbValues[1] << 2 & 0x3e0) | (rgbValues[0] & 0x1f) | 0x8000);
}


你可能感兴趣的:(知识库,opencv,人工智能,计算机视觉)