C# 16位灰度图像到热图
我正在为我的大学开发一个科学成像软件,我遇到了一个大问题。我实验室的科学相机(远地点Alta U57)提供的图像为16bpp阵列-每像素0-65535个值!我们希望保持这个范围,但实际上我们不能在监视器上显示它们(0-255灰度范围)。所以我找到了解决这个问题的方法——简单地使用颜色,并将整个图像显示为热图(从黑色、蓝色、绿色和红色到纯白色) 我的意思是这样的- 我唯一的问题是:如何高效地将16bpp像素值数组转换为c#中的完整热图位图?有这样做的图书馆吗?如果没有,我如何使用.NET资源实现这一点 我的想法是创建将65536个值映射为(255R,255G,255B)的函数,但这是一项艰巨的工作——特别是在不使用HSV模型的情况下C# 16位灰度图像到热图,c#,image,heatmap,C#,Image,Heatmap,我正在为我的大学开发一个科学成像软件,我遇到了一个大问题。我实验室的科学相机(远地点Alta U57)提供的图像为16bpp阵列-每像素0-65535个值!我们希望保持这个范围,但实际上我们不能在监视器上显示它们(0-255灰度范围)。所以我找到了解决这个问题的方法——简单地使用颜色,并将整个图像显示为热图(从黑色、蓝色、绿色和红色到纯白色) 我的意思是这样的- 我唯一的问题是:如何高效地将16bpp像素值数组转换为c#中的完整热图位图?有这样做的图书馆吗?如果没有,我如何使用.NET资源实现
如果能提供任何帮助,我将不胜感激 你的问题由几个部分组成:
- 读取16位像素数据值
- 将它们映射到24位rgb颜色
- 将它们写入图像文件
插值颜色
功能!在本例中,它只使用了6种颜色,这对于您的案例来说简直是少之又少
你应该选择更多;您可能需要以螺旋的形式穿过颜色空间
你的诀窍是选择好的和足够的停止颜色来创建一个64k大的独特颜色集,最好从蓝色到红色
您需要测试结果的唯一性;事实上,您可能需要为映射创建一对字典和一对字典。我接下来几周没有时间,所以我无法帮助您找到渐变映射,但我将在四个月后尝试。耶,您为我指明了方向-非常感谢!我将浏览LinearGradient类并尝试深入了解它!