【发布时间】:2018-01-24 20:57:58
【问题描述】:
有许多扫描仪允许在其设置中设置图像伽马,但不幸的是,此伽马是在扫描仪软件中调整的,而不是在扫描仪端(通过模拟方式或至少使用分辨率超过 8 位的 ADC) .比如说,我们最初从扫描仪得到线性响应,所以 255 是最大亮度,128 是亮度的一半,以此类推,然后图像通过 LUT:
0 -> 0,
1 -> 21,
2 -> 28
...
127 -> 186,
128 -> 186,
...
254 -> 255,
255 -> 255
问题是:我们得到了一些带有未知伽马设置的扫描页面,并希望自动处理它们,而不需要人工仔细检查。
我们想检测缺少某些特定亮度级别的图像(这里,gamma=2,2 我们错过了 1..20、22..27 等),并基于此分配相应的 gamma图像的价值,所以它会在之后被正确处理。顺便说一句,我们会提醒用户信息会因为这种伽马转换而丢失,因此用户应该尽可能将其关闭。
确定这种最常见的 gamma=2.2 情况非常容易,我们只需检查相应的零即可。 Gamma=1 也很容易:在这种情况下,我们应该完全没有失误。
但这将是最优雅的解决方案,不仅可以确定这些情况,还可以通过缺少唯一值来确定任意 gamma。例如,gamma=1,01 具有除 20 之外的所有值。在 gamma = 1,2(Plustek Opticbook 扫描仪喜欢灰度图像的这个值)我们有 1、2、5、7、9、12,...缺失,等等。
有一个问题:有时可能会丢失一些低值和高值,因为我们在页面上没有额外的白色或额外的黑色区域,所以我们应该切断这些“尾巴”并只处理内部缺失的级别。
我们可能会花费大量时间来构建某种决策树,但随后所有处理都应该尽可能快:这些图像的负载为 600 dpi 分辨率。
有什么想法吗?
【问题讨论】:
标签: algorithm image-processing