【问题标题】:Is there an Image processing algorithm that uses RGB image histogram?是否有使用 RGB 图像直方图的图像处理算法?
【发布时间】:2022-04-12 03:16:41
【问题描述】:

我使用 [0x000000; 范围内的具体值找到了 RGB 图像的直方图; 0xffffff],而不是在三个独立通道的范围 [0,255] 内或对一个通道使用 bin(因为我需要一个大范围)。现在我需要一些使用我建立的直方图类型的图像处理算法。

更准确地说,我用两种方法计算了 2 个直方图,数字之间存在一些差异。现在我需要通过给它们这两个数据集来查看算法结果的差异。

我找到了“直方图均衡”算法,但是,据我所知,它不适用于我的情况。那么,有没有这样的算法呢?

【问题讨论】:

  • 你最好先把图片转换成HSV,然后做三个不同的直方图。像你这样的直方图没有实际用途。
  • @Eddy_Em 感谢您的交流。我尝试将图像转换为 YCrCb。但就我而言,我需要超过 255 个垃圾箱。
  • @Eddy_Em,如果,确实,这种直方图没有实际用途,那么,对我来说,知道这一点就足够了。谢谢
  • 任何体面的颜色量化算法都受益于 3D 直方图,请参阅Effective gif/image color quantization?。在某些情况下,使用 2D HSV 直方图代替,请参阅 drawing HSV histogram

标签: image image-processing


【解决方案1】:

完整的 24 位 RGB 直方图有 2^24 = 16777216 个 bin,将占用 67MB 的存储空间 (!)。除非图像很大,否则大多数 bin 将为零。

处理直方图比处理图像本身的成本要高得多。仅清除直方图非常耗时。所以这样的数据结构实际上是没有用的。

此外,在现实世界的图像中,颜色分量通常高度相关,因此三个 1D 直方图的信息量几乎相同。

如果您真的想要一个 3D 直方图,那么最好通过截断值来牺牲几位精度,例如每个组件 6 或 5 位,从而产生总共 262144 或 32768 个 bin。

最后,请注意,直方图均衡对于彩色图像的定义并不明确,因为它需要标量输入数据,因此在实践中您需要对单个分量(亮度)进行均衡。


更新

颜色聚类算法(其中用于渲染/压缩的所谓颜色量化算法,https://en.wikipedia.org/wiki/Color_quantization)确实在概念上对 RGB 直方图进行操作。无论如何,实现通常不依赖于显式计算的直方图,而是依赖于单个 RGB 像素值。

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2019-03-20
    • 2013-11-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多