A intenção da classe é fazer com que uma matriz de números inteiros seja binarizada a partir de um limiar, ou seja, se eu tenho uma matriz int[][] matriz{{0,1}{2,0}{1,8}} e, além disso, definir um limiar 2, para que a matriz transforme um número do elemento maior ou igual a 2 em zero. O objetivo, se o limiar for dois, nesse caso, fazer com que a matriz anterior fique assim: {{0,1}{1,0}{1,0}}. Eu tentei escrever o código, porém, a matriz final não é modificada como eu desejaria. Veja o código:
class binarizaImg
{
int[][] binarizaImagem(int[][] imagem, int limiar)
{
int[][]imagemBinarizada;
imagemBinarizada = imagem;
for (int i = 0; imagemBinarizada.length > i; i++)
{
int a = 0;
int j = 0;
while (imagemBinarizada[0].length > j)
{
if ((imagemBinarizada[i][j] >= limiar)||(imagemBinarizada[i][j] == 0))
{
imagemBinarizada[i][j] = 0;
j++;
} // Fim do if
else
{
imagemBinarizada[i][j] = 1;
j++;
} // Fim do else
System.out.print(" " + imagemBinarizada[i][j]);
} // Fim do while
j = 0;
}// Fim do for
return imagemBinarizada;
} // Fim do método binarizaImagem
public static void main (String args[])
{
int matriz[][] = {{0,0,0,0,0,0},{0,8,0,0,1,0},{0,0,0,0,1,0},{0,0,0,0,1,0},{0,0,0,0,1,0},{0,0,0,0,0,0},{0,0,0,0,0,0}};
Imagem matrizImagem = new Imagem();
matrizImagem.binarizaImagem(matriz,3);
} // Fim do main
}// Fim da classe
No prompt de comando:
> java binarizaImg
0 0 0 0 0 8 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0>
Se alguém puder me ajudar com o código, agredeço desde já! :wink: