直方图匹配 - 图像处理 - c/c++

Posted

技术标签:

【中文标题】直方图匹配 - 图像处理 - c/c++【英文标题】:Histogram matching - image processing - c/c++ 【发布时间】:2011-02-24 17:43:18 【问题描述】:

我有两个直方图。

int Hist1[10] = 1,4,3,5,2,5,4,6,3,2;

int Hist1[10] = 1,4,3,15,12,15,4,6,3,2;

Hist1 的分布是多模态的;

Hist2 的分布是单峰型,单峰分布。

我的问题是

    有什么方法可以让我以编程方式确定分发的类型? 如何量化这两个直方图是否相似/不相似?

谢谢

【问题讨论】:

您可能会发现这个问题很有帮助 ***.com/questions/2661402/… 。然而,答案是指 R 编程环境。 【参考方案1】:

这些只是猜测,但我会尝试将每个分布拟合为高斯分布,并使用 R 平方值之类的值来确定分布是否为单峰。

关于两个分布之间的相似性,我会尝试做一个autocorrelation 并使用自相关中的峰值正值作为相似性度量。这些想法很粗略,但希望它们能给您一些想法。

【讨论】:

【参考方案2】:

Comparison of Histograms(用于云建模)。

(这是一个 MS .doc 文件。)

【讨论】:

【参考方案3】:

对于#2,您可以计算它们的cross-correlation(只要可以对存储桶本身进行排序)。这将使您粗略估计什么是“相似性”。

【讨论】:

【参考方案4】:

有多种软件包可以将您的分布“拟合”到已知的离散分布 - Minitab、STATA、R 等。R 中拟合分布的参考是 here。我不建议从头开始编程。

关于分布比较,如果两个分布都不适合已知分布(泊松、二项式等),则需要使用here 所述的非参数方法。

【讨论】:

【参考方案5】:

拉吉,

我在您的另一个问题 (automatically compare two series -Dissimilarity test) 中发布了一个 C 函数,该函数将计算两组相似数据之间的差异。它实际上旨在告诉您真实数据与预测数据的匹配程度,但我怀疑您可以将其用于您的目的。

基本上,误差越小,两组越相似。

【讨论】:

以上是关于直方图匹配 - 图像处理 - c/c++的主要内容,如果未能解决你的问题,请参考以下文章

使用直方图比较 C++ 匹配图像

OpenCV 完整例程48. 图像增强—彩色直方图匹配

OpenCV 完整例程47. 图像增强—直方图匹配

数字图像处理:直方图匹配或规定化Histogram Matching (Specification)原理及感悟

图像处理之直方图均衡和直方图匹配

图像处理之直方图均衡和直方图匹配