C# 创建每种颜色的图像渐变

C# 创建每种颜色的图像渐变,c#,.net,image-processing,gradient,radial-gradients,C#,.net,Image Processing,Gradient,Radial Gradients,本问题旨在收集一些初步信息和选项,以了解如何在不重新发明轮子的情况下解决此问题 我正在开发一个软件,它可以从一个类似照相机的设备接收8位图像。获得的图像是单色的(同样是8位的),然后我们根据我们拥有的16色彩色贴图给图像上色。例如,假设一张“Jet”彩色地图: 我的任务是创建渐变色贴图。 这意味着在每个色块中,我需要在透明度(alpha值)中创建一个从色块轮廓到中心的渐变。 下面是一个例子: 这个设计是一位设计师给我的,他用某种图形设计软件来生成它 另一个考虑因素是,我将使用的算法应该能够在

本问题旨在收集一些初步信息和选项,以了解如何在不重新发明轮子的情况下解决此问题

我正在开发一个软件,它可以从一个类似照相机的设备接收8位图像。获得的图像是单色的(同样是8位的),然后我们根据我们拥有的16色彩色贴图给图像上色。例如,假设一张“Jet”彩色地图:

我的任务是创建渐变色贴图。 这意味着在每个色块中,我需要在透明度(alpha值)中创建一个从色块轮廓到中心的渐变。 下面是一个例子:

这个设计是一位设计师给我的,他用某种图形设计软件来生成它

另一个考虑因素是,我将使用的算法应该能够在~50ms内完成,以满足实时性要求。但我以后会担心的

我正在寻找一个库,或算法,可以这样做。我脑子里有一个算法可以工作,但我认为优化和调试健壮性需要很长时间。 这需要集成到.NET项目中,可能是在C#中。 如果不需要的话,我不想重新发明轮子。任何帮助都将不胜感激

到目前为止,我发现了一个可以为给定形状执行渐变的项目。 这是朝着正确的方向迈出的一步,但不是我想要的


任何帮助都将不胜感激

如果可以在不同的层中使用每种颜色,则高斯模糊的反转可以为每个层生成透明度。但总体而言,这将是一个缓慢的过程。一个非常幼稚且缓慢的实现可能是:首先,您需要使用一种算法,如k-means聚类,将输入图像中的颜色后处理为您想要的层数。然后,对于每个层,您需要遍历每个不是空的像素,找到到最近边缘的距离,并将其用作alpha值。然后将所有层一层一层地合成。根据分辨率的不同,这对c#来说在50毫秒内完成可能是一个挑战,但你可能会在一天内完成一个原型的工作。但是你不会得到准确的输出,因为你没有任何图层数据,你只有一个高度图。平面设计师在某种程度上是在作弊,他们对我们看不到的图层的形状做出假设。@Rotem,谢谢!获取图层非常容易。为了获得图层信息,颜色栏截止值以下的所有数据都是0,而上面的所有数据都是1。然后,挑战是执行blob分析以确定封闭区域。一旦我们有了它,我们可以找到每个水滴的几何中心,从那里到梯度的道路是非常笔直的。