code: protected void checkNeighbors( int cx , int cy , float score , float flowX , float flowY , ImageFlow output ) {
  
  		int x0 = Math.max(0,cx-regionRadius);
  		int x1 = Math.min(output.width, cx + regionRadius + 1);
  		int y0 = Math.max(0,cy-regionRadius);
  		int y1 = Math.min(output.height, cy + regionRadius + 1);
  
  		for( int i = y0; i < y1; i++ ) {
  			int index = width*i + x0;
  			for( int j = x0; j < x1; j++ , index++ ) {
  				float s = scores[ index ];
  				ImageFlow.D f = output.data[index];
  				if( s > score ) {
  					f.set(flowX,flowY);
  					scores[index] = score;
  				} else if( s == score ) {
  					// Pick solution with the least motion when ambiguous
  					float m0 = f.x*f.x + f.y*f.y;
  					float m1 = flowX*flowX + flowY*flowY;
  					if( m1 < m0 ) {
  						f.set(flowX,flowY);
  						scores[index] = score;
  					}
  				}
  			}
  		}
  	}
docs: Examines every pixel inside the region centered at (cx,cy) to see if their optical flow has a worse
  score the one specified in 'flow'