如何在java程序中识别图像颜色?

时间:2010-09-23 15:20:17

标签: java

我有一个包含许多不同背景图像的文件夹。我需要根据背景颜色对这些图像进行排序。

我可以制作一个java程序来读取文件夹和每个图像文件,并确定每个文件的图像吗?请分享选项。

2 个答案:

答案 0 :(得分:2)

是的,有可能。您可以使用ImageIO加载图像。

BufferedImage img = ImageIO.read(imageFile);
int rgb = img.getRGB(x,y);
Color color = new Color(rgb);

但是你必须创建一个算法,找出哪种颜色是背景颜色。这取决于图像的种类。

答案 1 :(得分:2)

因此,不知道你的图像是什么样的,你可能想要尽可能多地平均背景,以便能够很好地呈现背景颜色。

我会考虑几件事:
*读入四个边缘中每个边缘的像素。如果像素颜色的变化很小,那么你可能会完成,只需取平均值即可 *执行相同的操作,但也可以从边缘到中间读取直线,直到您遇到颜色与运行平均值不同的像素。为所有边缘执行此操作。

这些是我能想到的最便宜的东西,可以涵盖背景颜色的变化。根据您正在使用的图像,您可能必须得到更好的效果。

BufferedImage可以为您提供图像数据。

标记