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

如何在java程序中识别图像颜色?,java,Java,我有一个文件夹,里面有许多不同背景的图像。我需要根据背景颜色对这些图像进行排序 我可以制作一个java程序来读取文件夹和其中的每个图像文件,并决定每个文件的图像吗?请分享期权。是的,这是可能的。您可以使用ImageIO加载图像 BufferedImage img = ImageIO.read(imageFile); int rgb = img.getRGB(x,y); Color color = new Color(rgb); 但是你必须创建一个算法,找出哪种颜色是背景色。这取决于图像的类型。

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


我可以制作一个java程序来读取文件夹和其中的每个图像文件,并决定每个文件的图像吗?请分享期权。

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

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

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

因此,在不知道图像的真实外观的情况下,您可能希望尽可能多地平均背景,以获得背景颜色的良好表示

我会考虑两件事:
*读取四条边的每个像素。如果像素颜色变化很小,那么你可以做,只需取平均值。
*做同样的事情,但也要从边缘到中间逐行阅读,直到你碰到一个像素,它的颜色与你的跑步平均值大不相同。对所有边执行此操作

这些将是我能想到的最便宜的东西来覆盖背景颜色的差异。根据你正在使用的图像,你可能需要变得更加花哨

BuffereImage应该为您获取图像数据


Mark

您需要对图像进行排序,这是否意味着要在您的文件管理器(如Windows资源管理器)中对图像进行排序?@Mstodd:我将确定图像的背景颜色,然后放入特定文件夹。如果图像背景为黑色,则应将其放入黑色文件夹中。