Problemas no JAI

Eai galera do GUJ, blz ?

É o seguinte: uma vez havia utilizado o JAI em um trabalho de processamento digital de imagens … e nao tive nenhum problema com essa API …
agora estou utilizando-a no programa do meu TCC … e coloquei exatamente o que fiz no meu programa de PDI … mas nao funciona … nao entendo … pela minha logica, parece certo …

eh o seguinte: na classe segmentacao, ira receber os parametros img1, img2 e img3 que sao os caminhos das 3 imagens. apos isso, ira ser executado o metodo criaMatriz para gerar a matriz de pixels em cada caminho recebido atraves do JAI … apos gerar a matriz de pixels, igualei os valores gerados para serem utilizados posteriormente (h1 = height) … o problema é que qdo eu imprimo a matriz de pixels, ele imprime com os valores dos pixels zerados … eu comentei no codigo abaixo … vejam …

public class Segmentacao {
	private int w, h;
	private RandomIter iterator, it1;
	private WritableRaster raster, rast1;
	private int[] pixel, pix;
	private BufferedImage image, image1;
	private int height, width, h1, w1, h2, w2, h3, w3;
	private int[][] mat1, mat2, mat3;
	private PlanarImage pi;
	private int nbands;
	
	public Segmentacao(String img1, String img2, String img3) {
		
			criaMatriz(img1);
			h1 = height;
			w1 = width;
			it1 = iterator;
			rast1 = raster;
			image1 = image;
			
			criaMatriz(img2);
			h2 = height;
			w2 = width;
			
			criaMatriz(img3);
			h3 = height;
			w3 = width;
			
			segUrbana();
	}
	
	public void criaMatriz(String img) {
		pi = JAI.create("fileload", img);
		SampleModel sm = pi.getSampleModel();
		nbands = sm.getNumBands();
		
		height = pi.getHeight();
		width = pi.getWidth();
		pixel = new int[nbands];
		
		iterator = RandomIterFactory.create(pi, null);
		
		image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		raster = image.getRaster();
	}
	
	public void segUrbana() {
		mat1 = new int[h1][w1];
		mat2 = new int[h2][w2];
		mat3 = new int[h3][w3];

                for(h=0; h<h1; h++) {
			for(w=0; w<w1; w++) {
				System.out.println(mat1[h][w]); //fiz um teste para saber se existe valores nos pixels da matriz. E na saida, apareceu todos os pixels igualados a zero! pq sera ?
			}
		}
		
		pix = new int[3];
		
		for(h = 0; h < h1; h++) {
			for(w = 0; w < w1; w++) {
				it1.getPixel(w, h, pix);
				
				mat1[h][w] = pix[0];
				mat2[h][w] = pix[1];
				mat3[h][w] = pix[2];
				
				if(mat1[h][w] > 35 && mat1[h][w] < 110 && mat2[h][w] > 40 && mat2[h][w] < 150 && mat3[h][w] > 0 && mat3[h][w] < 30) {
					pix[0] = 255;
					pix[1] = 0;
					pix[2] = 0;
				}
				else {
					pix[0] = 0;
					pix[1] = 0;
					pix[2] = 0;
				}
				
				rast1.getPixel(w, h, pix);
			}
		}
		try {
			File file = new File("./TempImage/urbana1.jpg");
			if(file.exists()) {
				ImageIO.write(image1, "JPG", new File("./TempImage/urbana2.jpg"));
			} else {
				ImageIO.write(image1, "JPG", new File("./TempImage/urbana1.jpg"));
			}
		} catch(IOException e) {
			JOptionPane.showMessageDialog(null, "Erro de gravação na imagem temporária");
		}
	}
}

aguardo respostas … t+