在双色刻度上获得颜色的定量值

时间:2016-03-02 22:22:08

标签: python algorithm colors interpolation linear-gradients

我进行了化学测试,根据样品中给定化学物质的含量产生颜色。如果没有化学物质则为绿色,如果有化学物质饱和,则为黄色。我用相机拍摄了几张样品,并开发了一条标准曲线,我在测试中加入了已知量的化学物质,然后拍下结果,将我的样品颜色与这些标准进行比较。

我想做的是开发一种创建双色刻度的算法。一种颜色是没有任何化学品(绿色)的测试,另一种颜色是用化学品(黄色)饱和的测试。然后当我输入样本颜色时,算法给出了%黄色输出。

我看到人们试图在颜色之间创建渐变,但从未读过试图将颜色放在渐变上的人。

我已经能够获得所有样本的RGB颜色值,因此actaul算法完全独立于任何编程语言(尽管我熟悉C,C#,VBA和python)。

有人能指点我做我想做的事情吗?

谢谢,

迈克尔

1 个答案:

答案 0 :(得分:2)

  1. 创建表格/函数RGB = f(concentration)

    这与你想要做的相反。我们的想法是将一些连续的标量变量(concentration)转换为 RGB 颜色(具有一些物理意义)。这里有一些我的例子:

  2. 相机校准

    正如Mark Ransom所说,这一步是必要的。我会尝试在视图区域放置一些标记来帮助解决这个问题。例如:

    markers

    现在选择角标记中的颜色,计算它们与标记真实颜色的不同之处,并以双线性方式插入整个图像。如果您需要双立方(更好的结果),那么使用16个标记。这个过程与此非常相似:

    您需要尝试使用哪种标记(只有黑色和白色,或者只是绿色和黄色或黑色以及红色和绿色和蓝色或组合......),因此您的结果将在不同光线条件下保持相同。此外,你必须制作依赖镜头,你将再次使用标记#1 ,因为没有它们你可能会在结果中出错......

    只有在您的相机经过预校准时,才能避免校准步骤,指示器始终具有相同的颜色,材质,粗糙度,光泽度......并且图像采用均匀恒定的照明条件(在某些框内,相同灯泡,同样的曝光,相同的瞳孔......)没有任何阴影,斑点等......这样的设置非常昂贵。低成本的手持设备大约<$> $ 10000 USD (通常用于制造中的颜色检测/测试以校准机器)。

  3. 转化concentration = f(RGB)

    如果#1 中的依赖关系是某种简单函数,那么您可以使用它的逆代数并直接使用它。如果您在链接的 QA 中构建 RGB 图表,您将看到要用作输入的通道(有时您只需要一个)。

    如果依赖性太复杂或不是函数,那么您可以使用:

    如果依赖项严格非增加非减少,您也可以使用二进制搜索