private static int getDigit(BufferedImage im, int x, int y) {
		long bestVal = Long.MAX_VALUE;
		int bestDig = -1;
		for (int i = 0; i < DIGITS.length; i++) {
			long curVal = 0;
			if (i != DIGITS.length - 1) {
				for (int row = 0; row < DIGITS[i].length; row++) {
					for (int col = 0; col < DIGITS[i][row].length; col++) {
						long c1 = grayScale(im.getRGB(x + col, y + row));
						long c2 = DIGITS[i][row][col];
						curVal += (c1 - c2) * (c1 - c2);
					}
				}

				if (curVal < bestVal) {
					bestVal = curVal;
					bestDig = i;
				}
			} else {
				int whitePixels = 0;
				for (int row = 0; row < DIGITS[i].length; row++) {
					for (int col = 0; col < DIGITS[i][row].length; col++) {
						if (grayScale(im.getRGB(x + col, y + row)) > 200) {
							whitePixels++;
						}

					}
				}
				if (whitePixels < 9) {
					bestDig = -1;
				}
			}

		}
		return bestDig;
	}