public override void SetData()
 {
     concreteFilter.FilterData = new double[matrix.Count, matrix[0].Count];
     for (int i = 0; i < matrix.Count; i++)
     {
         for (int j = 0; j < matrix[0].Count; j++)
         {
             concreteFilter.FilterData[i, j] = Matrix[i][j].Value;
         }
     }
     concreteFilter.RecalculateMask();
 }
        public override void SetData()
        {
            concreteFilter.FilterData = new double[Width, Height];
            for (int i = 0; i < Width; i++)
            {
                for (int j = 0; j < Height; j++)
                {
                    int relativeX = i - Width / 2;
                    int relativeY = j - Height / 2;


                    concreteFilter.FilterData[i, j] = 1.0 / (2.0 * Math.PI * Sigma * Sigma) * Math.Exp((relativeX * relativeX + relativeY * relativeY) / (2.0 * Sigma * Sigma));
                }
            }
            concreteFilter.RecalculateMask();
        }