2012-03-31 209 views

回答

1

此鏈接提供了一個教程,使用Java Advanced Imaging API http://www.raditha.com/java/image/來做你想做的事。我個人使用標準圖像API來做到這一點,從圖像文件創建一個BufferedImage,然後在每個像素上使用getRGB()。從這裏你可以得到每個像素的紅色,綠色和藍色值。您可以計算0-255的值數,將它們存儲在像直方圖的數組中的數組中。我將其用於內部處理,並且不顯示圖形,所以不幸的是我無法幫助您顯示部分。

+0

好的,但你會請你的代碼,它顯示如何獲取直方圖數據,如如何使用getRGB()以及如何計數。像素?請張貼您的部分代碼。 在此先感謝 – Jony 2012-04-02 11:41:37

+0

您的圖像需要作爲BufferedImage讀入。使用'image.getRGB(x,y)',你將得到該像素的像素值爲int,這些可以通過'Color pixel = new Color(image.getRGB(x,y))傳遞給Color類。 」。顏色類具有方法'getRed()','getGreen()'和'getBlue()'。我使用三個數組,其中每個地址就像直方圖的bin,這些數組的大小爲256,因此您可以基於每種顏色的值增加索引,例如,如果您發現像素(0,0)的紅色成分爲64你會增加一個redArray [64]。 – 2012-04-02 17:52:01

+0

這裏是我如何加載我的形象。請爲我提供下一步做到這一點 [http://stackoverflow.com/questions/9981328/plot-histogram-for-a-buffered-image-in-java] – Jony 2012-04-02 17:59:38