是否有使用RGB图像直方图的图像处理算法?

时间:2016-06-01 03:25:27

标签: image image-processing

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

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

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

1 个答案:

答案 0 :(得分:1)

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

处理直方图比处理图像本身要昂贵得多。只需清除直方图非常耗时。所以这样的数据结构几乎没用。

更重要的是,在真实世界的图像中,颜色成分通常是高度相关的,因此三个1D直方图几乎就像提供信息一样。

如果你真的想要一个3D直方图,那么最好通过截断这些值来牺牲一些精度,比如每个元件6或5位,这样就可以得到总共262144或32768个像素。

最后,请注意直方图均衡没有很好地定义彩色图像,因为它需要标量输入数据,所以在实践中你可以均衡单个组件(亮度)。

<强>更新

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