Boa tarde pessoal, venho lhes pedir humildemente vossa ajuda de novo.
Como não consegui de modo algum fazer a subtração de imagem, hora me retornava uma imagem preta hora somente com uma mascara vermelha. Bolei então meu próprio algorítimo, o qual me deu um resultado até bom, porem há algumas falhas que não entendo o porque ocorre, não consigo ver nada fora da lógica.
[img]http://img266.imageshack.us/img266/4965/c1d70d69e9d64cf5afbd9ac.png[/img]
Aqui está meu código fonte caso queiram analisar.
public static BufferedImage contarPixelsDif(BufferedImage imagem,
BufferedImage imagem1) {
Raster raster1 = imagem.getRaster();
WritableRaster raster2 = imagem.getRaster();
int[] pixel = new int[3];
int increment = 0;
ColorModel model = ColorModel.getRGBdefault();
for (int h = 0; h < imagem.getHeight(); h++)
for (int w = 0; w < imagem.getWidth(); w++) {
int rgb = imagem.getRGB(w, h);
int r = model.getRed(rgb);
int g = model.getGreen(rgb);
int b = model.getBlue(rgb);
int rgb2 = imagem1.getRGB(w, h);
int r2 = model.getRed(rgb);
int g2 = model.getGreen(rgb);
int b2 = model.getBlue(rgb);
if (rgb != -13883097) {
Wsub1 = w;
Hsub1 = h;
}
if (rgb2 != -13883097) {
Wsub2 = w;
Hsub2 = h;
}
if (Wsub1 != Wsub2 && Hsub1 != Hsub2) {
int cor = new Color(255, 000, 000).getRGB();
imagem.setRGB(Wsub2, Hsub2, cor);
}
}
return imagem;
}
O código acima recebe duas imagens como parâmetro, varre as imagens por completo e pega as coordenadas dos pixels que forem diferentes da cor -13883097, e então nas coordenadas que forem diferentes muda esse pixel para a cor vermelha. Setando assim os novos pontos na imagem. O problema é que em alguns pontos não estão sendo pintados por completos, e não consigo encontrar o que possa estar ocasionando isso.
Toda ajuda é bem vinda, desde já agradeço vossa atenção.




