question: private void thresholdBlur ( Kernel kernel , int [ ] inPixels , int [ ] outPixels , int width , int height , boolean alpha ) { float [ ] matrix = kernel . getKernelData ( null ) ; int cols = kernel . getWidth ( ) ; int cols2 = cols / 2 ; for ( int y = 0 ; y < height ; y ++ ) { int ioffset = y * width ; int outIndex = y ; for ( int x = 0 ; x < width ; x ++ ) { float r = 0 , g = 0 , b = 0 , a = 0 ; int moffset = cols2 ; int rgb1 = inPixels [ ioffset + x ] ; int a1 = ( rgb1 > > 24 ) & 0xff ; int r1 = ( rgb1 > > 16 ) & 0xff ; int g1 = ( rgb1 > > 8 ) & 0xff ; int b1 = rgb1 & 0xff ; float af = 0 , rf = 0 , gf = 0 , bf = 0 ; for ( int col = - cols2 ; col <= cols2 ; col ++ ) { float f = matrix [ moffset + col ] ; if ( f != 0 ) { int ix = x + col ; if ( ! ( 0 <= ix && ix < width ) ) ix = x ; int rgb2 = inPixels [ ioffset + ix ] ; int a2 = ( rgb2 > > 24 ) & 0xff ; int r2 = ( rgb2 > > 16 ) & 0xff ; int g2 = ( rgb2 > > 8 ) & 0xff ; int b2 = rgb2 & 0xff ; int d ; d = a1 - a2 ; if ( d >= - threshold && d <= threshold ) { a += f * a2 ; af += f ; } d = r1 - r2 ; if ( d >= - threshold && d <= threshold ) { r += f * r2 ; rf += f ; } d = g1 - g2 ; if ( d >= - threshold && d <= threshold ) { g += f * g2 ; gf += f ; } d = b1 - b2 ; if ( d >= - threshold && d <= threshold ) { b += f * b2 ; bf += f ; } } } a = af == 0 ? a1 : a / af ; r = rf == 0 ? r1 : r / rf ; g = gf == 0 ? g1 : g / gf ; b = bf == 0 ? b1 : b / bf ; int ia = alpha ? PixelUtils . clamp ( ( int ) ( a + 0.5 ) ) : 0xff ; int ir = PixelUtils . clamp ( ( int ) ( r + 0.5 ) ) ; int ig = PixelUtils . clamp ( ( int ) ( g + 0.5 ) ) ; int ib = PixelUtils . clamp ( ( int ) ( b + 0.5 ) ) ; outPixels [ outIndex ] = ( ia << 24 ) | ( ir << 16 ) | ( ig << 8 ) | ib ; outIndex += height ; } } }
target:  Convolve with a kernel consisting of one row