创建一个错误的调色板并将像素值与其关联

时间:2013-04-02 19:42:24

标签: colors qt4 pyqt color-palette

我有来自红外摄像机的原始像素数据(640x480像素),它代表特定的测量温度。这些像素值的16位范围为0到65535。

我可以将像素值显示为8位灰度,效果非常好。

但现在我想通过使用错误的调色板来显示这些像素。

我注意到了两个挑战:
1.)创建错误的调色板。这意味着不仅仅是一个简单的RGB或HSV调色板...我正在考虑从黑色到黄色,橙色,红色,最后到紫色的过渡 2.)将像素值关联到调色板上的颜色(例如0 =黑色,65535 =紫色,但31521 = ???)

你知道我应该如何解决这个问题吗?我使用Qt4和Python(PyQt),但如果您只是分享解决方案,我会非常高兴。

2 个答案:

答案 0 :(得分:0)

一种简单的方法是在您的范围内的某些点定义颜色 - 在您的示例中,0为黑色,65535为紫色,可能为10000为红色,无论您想要做什么。设置一个包含这些关键rgb值的表,然后简单地在输入值上方和下方的键值的rgb值之间进行插值,以找到任何给定值的rgb颜色。

例如。如果您正在查找值1000的颜色,并且您的表格已

value=0, color=(0,0,0)
value=5000, color=(255, 0, 255)

然后,您将在这些值之间进行插值以获得颜色(51,0,51)

答案 1 :(得分:0)

最简单的方法如下: 将您的unsigned short转换为QRgb类型,并在QColor构造函数中使用它。

unsigned short my_temp=...;
QColor my_clr((QRgb)my_temp);

这将使您的值成为黑色和青色之间的颜色。