我有一個具有不同背景的圖像的文件夾。我有要求在背景顏色的基礎上對這些圖像進行排序。如何識別java程序中的圖像顏色?
我可以製作一個java程序來讀取那裏的文件夾和每個圖像文件,並決定每個文件的圖像嗎?請分享選項。
我有一個具有不同背景的圖像的文件夾。我有要求在背景顏色的基礎上對這些圖像進行排序。如何識別java程序中的圖像顏色?
我可以製作一個java程序來讀取那裏的文件夾和每個圖像文件,並決定每個文件的圖像嗎?請分享選項。
是的,這是可能的。您可以使用ImageIO加載圖像。
BufferedImage img = ImageIO.read(imageFile);
int rgb = img.getRGB(x,y);
Color color = new Color(rgb);
但是你必須創建一個算法,找出哪種顏色是背景顏色。這取決於圖像的種類。
所以,不知道你的圖像是什麼樣的,你可能想平均儘可能多的背景,以獲得良好的背景顏色表示。
我會考慮幾件事情:
*讀入四個邊的每一個的像素。如果像素顏色的差異很小,那麼你可以完成,只取平均值。
*做同樣的事情,但也要從邊緣到中間逐行閱讀,直到您碰到與平均跑步顏色相當不同的像素。爲所有邊緣做這個。
這些將是我能想到的最便宜的東西,以涵蓋背景顏色的差異。根據您使用的圖像,您可能需要更加精彩。
BufferedImage應該爲您提供圖像數據。
馬克
您有需要對圖像進行排序,這是否意味着像在Windows資源管理器中的文件管理器中排序它們? – MStodd 2010-09-23 15:29:08
@Mstodd:我會識別圖像的背景顏色,然後把特定的文件夾。如果圖像有黑色背景,則應將其放入黑色文件夾中。 – 2010-09-23 15:33:17