我正在尝试用在服务器上完成的自动过程来替换在 PhotoShop 中完成的手动过程。目前,在 PhotoShop 中,“颜色范围”工具用于使用“模糊度”系数来选择一系列颜色,并根据处理的部分从黑色或白色开始。
我最初的方法包括使用 L*a*b 颜色空间中的发光阈值以及候选颜色和黑/白之间的 DE94。在这两种情况下,我都选择了不应该选择的颜色和/或没有选择应该选择的颜色。
我的直觉是我应该使用圆锥体而不是球体进行选择。
谁能深入了解 Photoshop 正在做什么以及我的方向是否正确?另外,如果有一个库可以做到这一点那就太棒了,我目前正在用 C 编写这个。
根据我在 Photoshop 中看到的情况,该算法可能类似于以下内容:
- 定义一个计算两种颜色的接近度的函数:例如,在颜色空间中使用欧几里德距离 - 即使用以下公式计算 RGB 空间中两个像素的颜色之间的距离欧氏距离公式 http://en.wikipedia.org/wiki/Euclidean_distance.
- 接下来,使用fallof函数调整每个像素的强度,
如那个高斯函数 http://en.wikipedia.org/wiki/Gaussian_function。你可能需要调整
一些参数。澄清一下:你计算两个的距离
RGB 空间中的像素(不是 2D 像素坐标中的距离),以及
然后将其输入到衰减函数中,该函数将提供结果
0.0 到 1.0 之间。将当前的所有颜色分量相乘
像素及其衰减函数的结果。这样做是为了
图像的每个像素。
- 如果你想添加效果的范围参数,只需使用
再次为每个像素提供相同的衰减函数,但这次提供它
所选像素与当前像素之间的欧氏距离
像素 2D 空间中的像素(像素之间的距离
图像上的坐标)。
如果您只想选择某些像素,那么您可以将衰减值存储在矩阵中,而不是直接在图像中的像素上应用效果double
s 的范围为 0.0 到 1.0。然后,选择一个阈值,高于该阈值您将选择给定像素。
例如,如果对于坐标 (x, y) 处的像素,步骤 2. 生成 0.8,而步骤 3. 生成 0.5,则坐标为 x 和 y 的矩阵元素的值应为0.8*0.5=0.4
。如果您选择的选择阈值低于 0.4,您将选择像素 (x, y),否则您将不会选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)