Estou fazendo um filtro mediana em java pra suavizar os ruídos de uma imagem
Mas sempre que executo recebo o seguinte erro:
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 9
public BufferedImage filtroMediana() { this.cinza = new int[qtdeColunas][qtdeLinhas]; for (int i = 0; i < qtdeColunas; i++) { for (int j = 0; j < qtdeLinhas; j++) { cinza[i][j] = (R[i][j] + G[i][j] + B[i][j]) / 3; } } int a = 0; int[] vet; int[] vet2; vet2 = new int [9]; vet = new int[9]; BufferedImage img2 = new BufferedImage(this.qtdeColunas, this.qtdeLinhas, BufferedImage.TYPE_INT_RGB); for (int i = 1; i < qtdeColunas - 1; i++) { for (int j = 1; j < qtdeLinhas - 1; j++) { int media = 0; for (int coluna = i - 1; coluna <= i + 1; coluna++) { for (int linha = j - 1; linha <= j + 1; linha++) { vet[a] = cinza[coluna][linha]; a++; } } for (int coluna = i - 1; coluna <= i + 1; coluna++) { for (int linha = j - 1; linha <= j + 1; linha++) { img2.setRGB(coluna, linha, new Color(vet[5], vet[5], vet[5]).getRGB()); } } } } return img2; }
Fazendo a depuração, vi que o vetor está sempre recebendo o mesmo valor, sendo que a matriz tem valores diferentes. Alguém poderia me ajudar a encontrar o erro?
