2

我需要根据java中的颜色直方图比较图像。我有使用 java 的 JAI 所做的图像直方图。

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

4

1 回答 1

2

有不同的方法来测量直方图的相似性。一种这样的方法是巴塔查里亚系数法。

您可以使用以下代码来计算此相似性度量:

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;
于 2012-05-17T16:08:57.940 回答