2 つのコンストラクターを持つマトリックス クラスと、マトリックス内の周囲の数値をフィルター平均するメソッドを作成する必要があります。
これが私が思いついたものですが、コンパイルしようとすると、「配列が必要です、マトリックスが見つかりました」というエラーが発生します。
助けてください !
/**
* This class represents a two dimensional Matrix
*
*/
public class Matrix
{
private int[][] _matrix;
/**
* Constructs a Matrix from a two-dimensional array; the dimensions as well as the values of this Matrix will be the same as the dimensions and values of the two-dimensional array.
*/
public Matrix(int[][] array)
{
for (int i=0; i < array.length;i++)
for (int j=0; j < array[i].length;j++)
_matrix[i][j] = array[i][j];
}
/**
* Constructs a size1 by size2 Matrix of zeroes.
*/
public Matrix(int size1, int size2)
{
for (int i=0; i < size1;i++)
for (int j=0; j < size2;j++)
_matrix[i][j]=0;
}
/**
* Calculates and returns a copy of this Matrix after it has been filtered from noise. All pixels are represented by a number 0-255 inclusive.
*
* @return a copy of this Matrix after it has been filtered from noise
*/
public Matrix imageFilterAverage()
{
Matrix newMatrix = new Matrix(_matrix);
for (int i=0; i < _matrix.length;i++)
for (int j=0; i < _matrix[i].length;j++)
newMatrix[i][j] = _matrix[i-1][j-1] + _matrix[i-1][j] + _matrix[i-1][j+1] + _matrix[i][j-1] + _matrix[i][j] + _matrix[i][j+1] + _matrix[i+1][j-1] + _matrix[i+1][j] + _matrix[i+1][j+1];
}
}
編集
皆さん、助けてくれてありがとう。今、toString メソッドを作成しようとしています。これは、数字の間にタブを付けてマトリックスを出力しますが、最後の行の最後の数字の後にはタブがありません。実際に機能させることはできません。戻す方法がわかりません。しかし、これが私がこれまでに思いついたものです:
public String toString()
{
for (int i=0; i < _matrix.length; i++) {
for (int j=0; j < _matrix[i].length; j++)
if (j == (_matrix[i].length - 1))
System.out.print(_matrix[i][j]);
else System.out.print(_matrix[i][j] + "\t");
System.out.println();
}
}