我需要在java中基于颜色直方图比较图像。我有直方图的图像,我用java的JAI。
但我不知道如何使用直方图比较它们。
答案 0 :(得分: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;