docs: private float[] sobel(int x, int y) {
  		int v00 = 0, v01 = 0, v02 = 0, v10 = 0, v12 = 0, v20 = 0, v21 = 0, v22 = 0;
  
  		int x0 = x - 1, x1 = x, x2 = x + 1;
  		int y0 = y - 1, y1 = y, y2 = y + 1;
  		if (x0 < 0)
  			x0 = 0;
  		if (y0 < 0)
  			y0 = 0;
  		if (x2 >= width)
  			x2 = width - 1;
  		if (y2 >= height)
  			y2 = height - 1;
  
  		v00 = image[x0][y0];
  		v10 = image[x1][y0];
  		v20 = image[x2][y0];
  		v01 = image[x0][y1];
  		v21 = image[x2][y1];
  		v02 = image[x0][y2];
  		v12 = image[x1][y2];
  		v22 = image[x2][y2];
  
  		float sx = ((v20 + 2 * v21 + v22) - (v00 + 2 * v01 + v02)) / (1200f);
  		float sy = ((v02 + 2 * v12 + v22) - (v00 + 2 * v10 + v20)) / (1200f);
  		return new float[] { sx, sy };
  	}