question: protected static float [ ] createGaussianKernel ( int radius ) { if ( radius < 1 ) { throw new IllegalArgumentException ( "Radius must be >= 1" ) ; } float [ ] data = new float [ radius * 2 + 1 ] ; float sigma = radius / 3.0f ; float twoSigmaSquare = 2.0f * sigma * sigma ; float sigmaRoot = ( float ) Math . sqrt ( twoSigmaSquare * Math . PI ) ; float total = 0.0f ; for ( int i = - radius ; i <= radius ; i ++ ) { float distance = i * i ; int index = i + radius ; data [ index ] = ( float ) Math . exp ( - distance / twoSigmaSquare ) / sigmaRoot ; total += data [ index ] ; } for ( int i = 0 ; i < data . length ; i ++ ) { data [ i ] /= total ; } return data ; }
target:  Create a Gaussian kernel for the transformation.