예제 #1
0
        /// <summary>
        /// Пространственный фильтр полутонового изображения
        /// </summary>
        /// <param name="img">Матрица изображения</param>
        /// <param name="filter">Матрица фильтра</param>
        /// <param name="coef">Коэффициент контраста</param>
        /// <param name="dx">Яркость</param>
        /// <returns>Возвращает результат фильтрации</returns>
        public static Matrix SpaceFilter(Matrix img, Matrix filter, double coef = 1, double dx = 0)
        {
            int    H = img.M - filter.M + 1, W = img.N - filter.N + 1;
            Matrix newMatr = new Matrix(H, W);

            for (int i = 0; i < H; i++)
            {
                for (int j = 0; j < W; j++)
                {
                    newMatr.Matr[i, j] = Filter(img, filter, j, i);
                }
            }

            return(NeuroFunc.Relu((newMatr * coef + dx / 255.0), 1, 0));
        }
예제 #2
0
        /// <summary>
        /// Медианный фильтр полутонового изображения
        /// </summary>
        /// <param name="img">Матрица изображения</param>
        /// <param name="filter">Матрица фильтра</param>
        /// <param name="coef">Коэффициент контраста</param>
        /// <param name="dx">Яркость</param>
        /// <returns>Возвращает результат фильтрации</returns>
        public static Matrix MedianFilter(Matrix img, Matrix filter, double coef = 1, double dx = 0)
        {
            int    H = img.M - filter.M + 1, W = img.N - filter.N + 1;
            Matrix newMatr = new Matrix(H, W);

            for (int i = 0; i < H; i++)
            {
                for (int j = 0; j < W; j++)
                {
                    newMatr.Matr[i, j] = FilterMedian(img, filter, j, i);
                }
            }

            newMatr = MathFunc.abs((newMatr * coef + dx / 255.0) - Statistic.ExpectedValue(newMatr.Spagetiz()));

            return(NeuroFunc.Relu(newMatr, 1, 0));
        }
예제 #3
0
 /// <summary>
 /// Производная ф-ии активации
 /// </summary>
 public override Vector DfDy()
 {
     return(NeuroFunc.Relu(OutputLayer, 0.0));
 }
예제 #4
0
 /// <summary>
 /// Ф-я активации
 /// </summary>
 /// <param name="inp">Вход</param>
 /// <returns></returns>
 public override Vector FActivation(Vector inp)
 {
     return(NeuroFunc.Relu(inp, 0.0));
 }
예제 #5
0
 /// <summary>
 /// Регулировка контраста и яркости
 /// </summary>
 /// <param name="img">Матрица изображения</param>
 /// <param name="coef">Контраст</param>
 /// <param name="dx">Яркость</param>
 /// <returns>Итоговое изображение</returns>
 public static Matrix Contrast(Matrix img, double coef = 1, double dx = 0)
 {
     return(NeuroFunc.Relu((img * coef + dx / 255.0), 1, 0));
 }