Eu preciso analisar os pixels de uma imagem, porém eu tenho que selecionar a área na imagem que é para ser analisada e não analisando a parte que não está selecionada. Alguém tem alguma idéia de como fazer isso?
Qual a sua definição de área de interesse?
a) Vou marcar um retângulo dentro da imagem que quero analisar.
b) Vou pegar uma ferramenta qualquer de desenho e marcar um polígono ou uma figura dentro da imagem que quero analisar.
a) Vou marcar um retângulo dentro da imagem que quero analisar.
Quero fazer um detector de movimento, mas vou monitorar apenas a área selecionada
Se você vai limitar alguma coisa dentro dos limites 10 <= x <= 200 e 20 <= y <= 400 (por exemplo), basta fazer as comparações adequadas. Mas é claro que depende da forma que você está analisando a imagem; pode haver, na sua API, por exemplo, uma forma de você já fazer essa tal limitação sem ter de copiar para uma sub-imagem com o tamanho menor.
Mas como eu faço para pegar os valores do campo selecionado
Voce pode fazer do seguinte modo >
//criar um objeto buffed para ler a imagem de entrada
BufferedImage imagem = null;
try {
imagem = ImageIO.read(new File(nomeImagem));
} catch (IOException ex) {
System.out.println("ERRO " + ex.getMessage());
}
//os metodos getW e get H retorna a largura e altura da imagem
int w = imagem.getWidth();
int h = imagem.getHeight();
// este metodo retorna a cor rgb de todos os pixels da imagem
int[] pixels = imagem.getRGB(0, 0, w, h, null, 0, w);
Na dcumentação de uma olhada neste metodos da classe BufferedImage . Qualquer duvida e so postar flw