【问题标题】:Find out if a photo is monochrome/sepia from a big group of photos从一大组照片中找出一张照片是否是单色/棕褐色
【发布时间】:2011-08-18 23:06:28
【问题描述】:

我正在尝试设计一种算法来选择单色照片(摄影师称之为“黑白”)并且具有单一色调,例如棕褐色。 (想想你已经对单色图像应用了纯色滤镜)如果我只追求单色,我只需要检查饱和度,这很容易(我目前正在这样做),但它在寻找纯色单色照片。有什么方法可以解决这个问题?

【问题讨论】:

  • 想法:计算每对颜色通道之间的互相关系数。如果图像都足够接近 1,则将图像声明为单色。(定义“足够接近”需要一些实验)。

标签: c# algorithm image-processing selection


【解决方案1】:

如果图像是单色的,无论是黑白还是棕褐色,对应于每个亮度级别的颜色应该几乎相同。将图像颜色空间转换为包含亮度 (Y) 或亮度分量的颜色空间,例如 YCbCr 或 HSL,并为每个 Y/L 值查看其他两个通道中的方差。如果这些值聚集在一起,则您有一个单色图像。

【讨论】:

  • 从关于 RGB 和 HSL 的维基百科文章开始,我发现 chroma 是我想要的。实现了它并且效果很好..
【解决方案2】:

也许您可以查看 R、G 和 B 直方图中值的分布/模式,如果您使用 Photoshop 之类的工具来可视化单色图像的直方图,您会看到“模式”的分布所有三个通道的直方图都相似(需要归一化),而全彩色图像上每个通道的分布(通常)完全不同。在大多数情况下......在某些情况下,全彩色图像可能仍会散发出单色的味道,如 Photoshop 中的彩虹渐变 - 但这是人为的,这可能不会在“自然”中经常发生摄影。

【讨论】:

  • 是的,对于一张“非常彩色”的照片,每个通道的直方图不太可能几乎相等。所以这个方法应该在理论上有效,我将对其进行编码,看看结果如何..
【解决方案3】:

如果您的图像是单色的,那么所有像素的饱和度都将大约为 0。如果您的图像是色调(如棕褐色),那么所有像素将具有大致相同的色调。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2020-05-09
    • 2020-08-19
    • 1970-01-01
    相关资源
    最近更新 更多