2011-12-12 70 views
2

我需要根据java中的颜色直方图比较图像。我有使用Java的JAI的图像直方图。基于颜色直方图的图像搜索

但我不知道如何使用直方图比较它们。

+0

在哪种方式你要对它们进行比较,你有什么预期的结果?你想知道哪个更明亮吗?哪个更蓝?或者哪个更好?你必须告诉我们更多的答案。 – Kai

+0

感谢您的重播... 我只是想知道他们有多接近。就像我使用红色和圆形的苹果图像比我应该得到的图像可能有红苹果等@ user714965 –

回答

2

测量histgorams的相似度有不同的方法。一种这样的方法是Bhattacharya系数法。

您可以使用下面的代码计算这种相似性措施:

float similarity = 0; 
float[] targetHistogramData = ...//histogram1.getData(); 
float[] targetCandidateHistogramData = ...//histogram2.getData(); 

if(targetHistogramData.length != targetCandidateHistogramData.length){ 
    throw new IncompatibleHistogramsException(); 
} 

for(int i = 0; i < targetHistogramData.length; i++){ 
    similarity += Math.sqrt(targetHistogramData[i]*targetCandidateHistogramData[i]); 
} 

return similarity;