image-processing - Photoshop Camera RAW/Lightroom 的色彩校准工具如何工作?
问题描述
我想尝试在 Photoshop/Lightroom 的相机原始滤镜中对相机校准面板进行逆向工程。
它可以创建一些非常酷的效果,所以我想编写一个程序来帮助自动化这些效果。我试图弄清楚它是如何工作的,它似乎与 HSL 颜色调整方法的工作方式不同,因为仅移动“蓝色原色”滑块似乎会影响所有颜色,而不仅仅是蓝色色调(它甚至会影响某些颜色以纯红色开头)。
我试图绘制出这样的功能,因为它似乎做了一些事情,将RGB中实际蓝色的色调改变为你改变色调的任何东西,但我不确定这实际上意味着什么。
这是相同的图表,但将蓝色原色一直向左移动。
我知道它所做的不仅仅是色调变化,因为只是在 L/S 均为 100% 的色调光谱上运行过滤器似乎实际上会改变某些色调的亮度和饱和度,请参见下面链接的图像作为示例。
有没有其他开源软件可以做这样的事情,我可以寻找代码,或者可能知道这实际上是如何工作的?
解决方案
我想通了(至少我相信他们在做什么)。因此,如果其他人有同样的问题,他们正在做的是利用 RGB -> XYZ 颜色空间转换中每种 RGB 颜色的色度坐标。因此,当移动蓝色坐标的色调时,我认为他们首先只是在 HSL 中移动蓝色的色调,然后采用移动色调的颜色,将其转换为 XYZ,然后将 XYZ 投影到 XY 上以获得色度偏移蓝色的坐标。然后将其应用于图像,只需使用偏移坐标从 RGB 转换为 XYZ,然后使用未偏移的 XYZ 转换矩阵转换回 RGB。
推荐阅读
- apache - 是否可以在将处理程序添加到 Apache conf 文件之前检查它是否存在?
- python - 在嵌套列表中查找多个重复项,然后在保留最新条目的同时删除它们
- perl - 关于 Perl 映射函数的建议
- php - 修改 Sonata Media Bundle 时预览栏消失
- python - 在 ML 中使用 tensorflow,为什么我的内核会不断重启?
- angular - Angular - 如何验证 Angular Material stepper 中的每一步
- sql - 允许(空)值,但不允许值零
- ios - 为数据集设置填充颜色
- kotlin - ArrayList 中的 Size 属性与 Count() 方法 - Kotlin
- apache-flink - 在 BEAM python 管道中打开并行性时,Flink runner 不会拆分任务