По хэшам естественно ничего не выйдет - картинки то хоть и одинаковые свиду, но не факт что те же.
Вторая ваша идея уже ближе к адекватным решениям. По сути вам нужно посчитать гистограмму для изображения (количество белых пикселей в каждой колонке). Считать пиксели просто - для этого просто нужно обойти каждый пиксель изображения, определить его цвет (белый или черный) и инкрементить счетчики в случае белого цвета.
Для каждой цифры эти гистограммы будут различаться, а между свиду схожими изображениям они будут очень похожи.
Далее можно просто запомнить все гистограммы, и при распозновании считать у изображения на входе ее гистограмму, вычислять расхождение (насколько в каждой колонке различаются значения, тут много вариантов. Лучше поискать что-то уже готовое, в сети таких штук хватает) и просто выбрать тот вариант, расхождение с которым меньше.
Этот метод можно класифицировать как "тупой".
Нейронки (в частности проще всего это будет сделать используя многослойный перцептрон, исходники реализаций которого в сети валяются в достаточном объеме) так же хороши, но для обучения нужна хоть какая-то выборка и еще тестовая выборка цифр. Если у вас их достаточно (хотя бы по 5 штук на цифру) и еще столько же тестовых образов (они должны хоть как-то отличаться) - то без проблем. Алгоритм там довольно простой, хотя объемы теории могут повергнуть в легкий ужас.