我需要比较和计算灰度图像的局部二值模式(LBP
)直方图之间的相似性,用于人脸识别。
计算直方图为数组形式,使用Accord.net
计算。
(直方图是int [,][]
形式,当我使用断点获得直方图时,我获得int [3,3][256]
,因此它们是[0,0], [0,1], [0,2], [1,0] ...... [2,1], [2,2]
和[,]
数组内部的组合,从0
到255
有256 values
)
获取直方图的代码如下;
//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;
}
如何获得直方图之间的相似度百分比?
你能给我一些提示来比较它们吗?
另外,我在一张图片下总共有48个直方图。是否有有效的方法将48个直方图组合在一起,以便与另一组48个直方图进行比较?有没有推荐Accord.Net
的有效库来计算LBP
直方图?Accord.Net
的信息和文档非常少,这让我作为一个初学者更难学习。
谢谢你阅读我的帖子和非常感谢您的帮助。
OpenCV是领先的图像处理库,提供了许多广为人知的算法。它在CSharp中可用。
对于直方图比较,卡方距离是一个很好的方法。它在OpenCV中可用。
对于您的第三个问题,串联直方图,您必须将串联直方图规范化到[0-1]范围,以便更好地进行比较。