image - 编写颜色配置文件以跨多个扫描仪标准化颜色

标签 image algorithm colors compare photoshop

我志愿参与的一个社区项目,旨在创建收藏集换式卡片的高分辨率图像。这些卡片由其他贡献者使用具有不同品牌、型号和颜色偏差的扫描仪扫描。

我需要一种算法,将一台扫描仪的一叠卡片与另一台扫描仪的同一叠卡片(颜色目标)进行比较,以创建一个颜色配置文件,使第一台扫描仪的颜色偏差正常化。配置文件应包含可手动记录的 Photoshop 调整设置。

即.

Hue/Sat Adjustment | Red , Hue +5 , Sat -10
Levels Adjustment | Black Point , 10

我可以使用 PHP 或 Javascript。

在我的第一次尝试中,我将扫描中的每个像素都转换为 HSB,并将结果分类为红色、黄色、绿色、青色、蓝色和洋红色的数组。然后我对颜色组进行平均并计算扫描之间的差异。我使用不良扫描上的差异色相和饱和度量创建了 Photoshop 色相/饱和度调整。结果不够准确。

我应该使用什么具体过程来比较扫描以创建这些颜色配置文件?

谢谢!

最佳答案

1.我不认为HSV是方式

  • 我知道的所有常用扫描仪/照相机都通过带通滤波器扫描 R、G、B
  • 因此您必须管理 R、G、B(很可能是分开的)而不是整个颜色空间
  • 改用 RGB 空间!!!

2.归一化

  • 你必须获得每个色带(R,G,B)的传输函数
  • 并从中获得多项式(饱和度、亮度、 Gamma 校正)
  • 通常对每个波段来说这就足够了:

    R(ir) = R0 + R1*ir + R2*ir*ir
    G(ig) = G0 + G1*ig + G2*ig*ig
    B(ib) = B0 + B1*ib + B2*ib*ib
    
  • R,G,B 为非标准化图像颜色

  • ir,ig,ib为归一化图像中对应的颜色
  • 获取常量R(0,1,2),G(0,1,2),B(0,1,2)
    • 扫描一些测试图像(比如卡片的边框......)
    • 在那里找到 R、G、B 渐变(在引用扫描仪上是颜色 ir、ig、ib)
    • 并在标准化扫描仪上从相同位置取色(R(ir),G(ig),B(ib))
  • 现在只需为每个扫描仪创建转换表 R -> ir , G -> ig , B -> ib
  • 或者创建反向传输函数
  • 并将所有图像转换为标准化强度

如果所有卡片的测试图片不一样

  • 卡片边框可能因卡片而异
  • 不仅在颜色上而且在位置上
  • 然后您必须通过在测试图像中搜索正确的区域来进行调整...

关于image - 编写颜色配置文件以跨多个扫描仪标准化颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22949642/

相关文章:

JavaScript 错误 : Cannot read property 'width' of null

python - 确定这个 RGB 元组是什么颜色

algorithm - 找出递归函数的模式

java - 将带有背景图像的 JPanel 添加到 JFrame 并绘制它

php - Wordpress:删除附件字段

ios - 如何将.cpbitmap转换为可读图像(png,jpg,jpeg…)

java - 16 位转换的相对 8 位颜色

algorithm - 函数 (log n)^k 的大 O 是什么

python - RGB色彩校正

C# GDI+ 图像调整大小函数