Nez.Textures.GaussianBlur.gaussianConvolution C# (CSharp) Method

gaussianConvolution() static private method

static private gaussianConvolution ( double matrix, double deviation ) : ].double[
matrix double
deviation double
return ].double[
		static double[,] gaussianConvolution( double[,] matrix, double deviation )
		{
			var kernel = calculateNormalized1DSampleKernel( deviation );
			var res1 = new double[matrix.GetLength( 0 ), matrix.GetLength( 1 )];
			var res2 = new double[matrix.GetLength( 0 ), matrix.GetLength( 1 )];

			// x-direction
			for( var i = 0; i < matrix.GetLength( 0 ); i++ )
			{
				for( var j = 0; j < matrix.GetLength( 1 ); j++ )
					res1[i, j] = processPoint( matrix, i, j, kernel, 0 );
			}

			// y-direction
			for( var i = 0; i < matrix.GetLength( 0 ); i++ )
			{
				for( var j = 0; j < matrix.GetLength( 1 ); j++ )
					res2[i, j] = processPoint( res1, i, j, kernel, 1 );
			}
			return res2;
		}

Usage Example

Beispiel #1
0
        public static Color[] createBlurredGrayscaleTexture(
            Color[] srcData,
            int width,
            int height,
            double deviation = 1)
        {
            var destData = new Color[width * height];
            var matrix   = new double[width, height];

            // first we calculate the grayscale and store it in matrix
            for (var i = 0; i < width; i++)
            {
                for (var j = 0; j < height; j++)
                {
                    matrix[i, j] = srcData[i + j * width].grayscale().R;
                }
            }

            matrix = GaussianBlur.gaussianConvolution(matrix, deviation);
            for (var i = 0; i < width; i++)
            {
                for (var j = 0; j < height; j++)
                {
                    var val = (int)Math.Min(255, matrix[i, j]);
                    destData[i + j * width] = new Color(val, val, val, srcData[i + j * width].A);
                }
            }

            return(destData);
        }
All Usage Examples Of Nez.Textures.GaussianBlur::gaussianConvolution