我需要根据java中的颜色直方图比较图像。我有使用 java 的 JAI 所做的图像直方图。
但我不知道如何使用直方图比较它们。
我需要根据java中的颜色直方图比较图像。我有使用 java 的 JAI 所做的图像直方图。
但我不知道如何使用直方图比较它们。
有不同的方法来测量直方图的相似性。一种这样的方法是巴塔查里亚系数法。
您可以使用以下代码来计算此相似性度量:
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;