protected static void gaussianKernel ( double xx , double yy , GrayF64 xy , double sigma , GrayF64 output ) { double sigma2 = sigma * sigma ; double N = xy . width * xy . height ; for ( int y = 0 ; y < xy . height ; y ++ ) { int index = xy . startIndex + y * xy . stride ; for ( int x = 0 ; x < xy . width ; x ++ , index ++ ) { // (xx + yy - 2 * xy) / numel(x) double value = ( xx + yy - 2 * xy . data [ index ] ) / N ; double v = Math . exp ( - Math . max ( 0 , value ) / sigma2 ) ; output . data [ index ] = v ; } } }
Computes the output of the Gaussian kernel for each element in the target region