Código em Java que Leia imagem e diga qual a cor

Ola Pessoal!

Estou tentando desenvolver um programa em java que leia uma imagem e diga qual a cor daquela imagem, por exemplo após ler a imagem diz se a imagem é azul, vermelho, verde etc. Porém estou aprendendo programação Java agora e nunca trabalhei com imagens antes, vocês poderiam me ajudar me dizendo como trabalhar com imagens e/ou alguma vídeo aula, livro, site que ensine a trabalhar com imagens no Java.

Desde já Agradeço

Você pode carregar a imagem num BufferedImage usandno ImageIO.read(), e pegar a cor dos pixels com o método getRGB(), passando a posição do pixel que quer analisar.

Referências:

Abraço.

Este código exige a cor RGB mais comum de uma imagem. O que fiz foi basicamente registrar todos os pixels da imagem e ver qual que é o pixel mais comum.

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;

import javax.imageio.ImageIO;

class CorCustomizada {
	private Color color;

    public CorCustomizada(Color color) {
		this.color = color;
	}

	@Override
	public boolean equals(Object obj) {
		if (!(obj instanceof CorCustomizada)) {
			return false;
		}

		CorCustomizada outraCor = (CorCustomizada) obj;

		return this.color.getRed() == outraCor.color.getRed() && 
		 	  this.color.getGreen() == outraCor.color.getGreen() && 
		   	this.color.getBlue() == outraCor.color.getBlue();
	}

	@Override
	public int hashCode() {
		return Objects.hash(color.getRed(), color.getGreen(), color.getBlue());
	}

	@Override
	public String toString() {
		return "(" + color.getRed() + "," + color.getGreen() + "," + color.getBlue() + ")";
	}
}

public class Teste {
	public static void main(String args[]) throws Exception {
	BufferedImage imagem = ImageIO.read(new 	File("pasta/pasta2/minha_imagem.png"));

	List<CorCustomizada> todosPixelsDaImagem = new ArrayList<>();

	for (int i = 0; i < imagem.getHeight(); i++) {
		for (int j = 0; j < imagem.getWidth(); j++) {
			Color corPixel = new Color(imagem.getRGB(i, j), true);
			todosPixelsDaImagem.add(new CorCustomizada(corPixel));
		}
	}

	CorCustomizada corRgbMaisComum = todosPixelsDaImagem.stream()
			.collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).entrySet().stream()
			.max(Comparator.comparing(x -> x.getValue()))
			.get()
			.getKey();

	System.out.println(corRgbMaisComum);
}
}