【问题标题】:color histogram for images图像的颜色直方图
【发布时间】:2012-08-22 21:37:27
【问题描述】:

在颜色直方图中,我们通常在每个颜色通道中提取直方图,这不包含颜色如何共现的信息,例如有多少像素的强度为 I(100,200,50)?

有没有什么方法可以构建一个表示颜色同时出现的直方图? (多少像素包含强度值(200,100,50)?)

我正在寻找此类直方图的一些改进版本,例如。像这样paper

【问题讨论】:

  • 这可能取决于您的目的。你想形象化吗?还是你想把它用作图像级描述符?
  • 我想用作描述符..

标签: image-processing machine-learning computer-vision


【解决方案1】:

您可以构建一个包含 256^3 个值的非常大的直方图,或者您可以量化每个通道中的值(例如每个通道 10 个值),这将产生一个包含 1000 个条目的直方图。

【讨论】:

  • 这是一种合适的方法,但使用的 bin 可能会非常稀疏。可以改为将所有三个值散列在一起以获得 long,然后将其用作散列表的键。
【解决方案2】:

由于您想将其用作图像级描述符以进行进一步识别,因此简单的分箱可能不是最佳选择,因为颜色在您的样本中分布不均匀。

典型的方法是bag of words。您从整组图像(3D 空间中的点)中获取所有像素值,并使用一些聚类算法(如k-means 或EM algorithm)对它们进行量化。假设您使用了 K 个集群(可能取决于您的目的和样本量,您可以从 K = 100 开始)。要描述单个图像,您需要为每个像素(所谓的视觉词)找到最接近的聚类,并使用 K 个 bin 构建直方图,以便每个 bin 值是对应于视觉词的像素数。这是您的描述符,您可以使用欧几里得距离或 χ² 距离在描述符上比较图像。

请注意,根据您的平台,有很多可用的聚类算法(甚至是词袋框架)的实现。 OpenCV 是最受欢迎的。请注意,您还可以使用基于梯度的描述符,例如 HOG,具体取决于您的问题。

【讨论】:

  • 谢谢。我在research.microsoft.com/pubs/68706/cvpr1.pdf 发现了以下有趣的“具有颜色共现直方图的对象识别”
  • 计算机视觉在过去十年中取得了巨大进步,因此该论文可能远非最先进。
  • 感谢您的回复。我认为它离最先进的水平不远。它就像一种新的描述符。我浏览了几篇论文,发现这很有用,并被许多其他论文引用。但仍然无法弄清楚如何有效地实施该论文。如果有人可以帮助我给我一些有效实施它的提示,那将会很有用。
【解决方案3】:

我认为您刚刚回答了自己的问题。

是的,可以建立这样的直方图。在实现方面应该相当简单,因为通常(r,g,b) 由 32 位表示,其中前三位是 r、g 和 b

【讨论】:

    猜你喜欢
    • 2012-01-02
    • 2020-09-07
    • 2012-01-18
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多