Как вы усредняете соседние ячейки в двумерном массиве, чтобы создать новый массив этих средних? "убирая шум" - PullRequest
0 голосов
/ 08 февраля 2020

Мне нужна помощь (очень новичок в этом)! У меня есть 2D-матрица, в которой я должен создать новую матрицу, где значения в каждой ячейке являются средними значениями окружающих ячеек в исходной матрице.

например, если у меня есть матрица

{ 19, 124, 28
  115, 22, 25
  9, 21, 22
}; 

, результат будет

{70, 55, 49
 51, 42, 24
 48, 35, 22
};

Я уже создал конструктор копирования и метод для суммирования в соседние ячейки ( см. ниже), чтобы я мог разделить на них сумму исходных ячеек матрицы , но я не уверен, как создать еще один массив среднего значения, в котором я суммирую фактические значения в исходном массиве и делю на значения массива sumCells для создания нового массива средних.

public Matrix sumCells() //sums the adjacent cells and uses the sum to calculate the average 
    {
        //copy the object 
        Matrix m = new Matrix(_matrix); //new matrix with the sum of the surrounding cells 
        //initilialise variables
        //sum of surrounding cells 
        for (int i=0; i<m._matrix.length; i++)
        {
            for (int j=0; j<m._matrix[i].length; j++)
            {
                int numberOfSurroundingCells = 0; 
                int cells = 0; 
                for (int x=i-1; x<=i+1; x++) 
                {
                   for (int y=j-1; y<=j+1; y++)
                   {
                       if (0<=x && x<m._matrix[i].length && 0<=y && y<=_matrix[i].length) 
                       {
                           numberOfSurroundingCells += m._matrix[x][y]; 
                           cells++; 
                       }
                   }//end loop 4
                }//end loop 3
                m._matrix[i][j] = cells;
            }//end loop 2
        }//end loop 1
        return m;

Любое направление поможет вам спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...