如何计算直方图(特征向量)之间的相似度百分比

Posted

技术标签:

【中文标题】如何计算直方图(特征向量)之间的相似度百分比【英文标题】:how to compute percentage of similarity between histograms (feature vector) 【发布时间】:2016-07-03 06:37:50 【问题描述】:

我需要比较和计算灰度图像的局部二值模式(LBP) 直方图之间的相似度以进行人脸识别。

计算的直方图是数组形式,使用Accord.net计算。

(直方图是int [,][] 形式,当我使用断点获得直方图时,我得到int [3,3][256] 所以它们是[0,0], [0,1], [0,2], [1,0] ...... [2,1], [2,2][,] 数组内部的组合,256 values 来自0255)

我获取直方图的代码是这样的;

//LBP setting is default which are;
//Cell size of the histogram is 6 pixcel
//Block size of the histogram is 3 cells
 private int [,][] histo (BitmapSource croppedImage)
 
     var converted = BitmapFromSource(croppedImage);
     var output = LBP.ProcessImage(converted);
     var qwert = LBP.Histograms;
      LBP.ProcessImage(converted); ;

     return qwert;
 

如何获得直方图之间的相似度百分比?

你能给我一些提示来比较它们吗?

此外,我在 1 张图像下共有 48 个直方图。有没有什么有效的方法可以将 48 个直方图组合在一起,以便与另一组 48 个直方图进行比较?以及有效库的任何推荐然后Accord.Net 计算LBP 直方图? Accord.Net 的信息和文档很少,这让我更难了解它,因为我是初学者。

感谢您阅读我的帖子 非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

OpenCV 是领先的图像处理库,提供了许多广为人知的算法。它在 CSharp 中可用。

对于直方图比较,卡方距离是一个不错的方法。它在 OpenCV 中可用。

对于您的第三个问题,连接直方图,您必须将连接直方图 标准化 到 [0-1] 范围内以便更好地进行比较。

【讨论】:

我尝试在我的程序中使用 EmguCV,但它似乎还没有 openCV 强大。对于连接部分,我该如何进行?我已经对直方图进行了标准化,但我不知道如何将它们连接在一起。顺便说一句,真的谢谢你的回答!!

以上是关于如何计算直方图(特征向量)之间的相似度百分比的主要内容,如果未能解决你的问题,请参考以下文章

推荐引擎:余弦相似度与测量每个向量分量之间的差异百分比

图像相似度检测算法

文本挖掘——文本特征TFIDF权重计算及文本向量空间VSM表示

simhash算法

图像相似度计算【python】

机器学习基本概念总结