2011-12-12 66 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;