вечером полностью перенесу
Суть метода
1. Определяются границы рисунка, вырезается прямоугольная область (чтобы отсечь пустые пиксели и уменьшить размерность рабочей матрицы).
2. Область делится крест накрест, на 4 части.
Для каждой четверти подсчитывается количество попавших в нее закрашенных пикселей, вычисляется доля относительно всего рисунка. Примерно как-то так:
3. Для более высокой точности распознавания, исследуется топология. С помощью рекурсивной функции подсчитывается количество замкнутых областей. Если их две — это точно цифра 8. Если одна — 0, 6 или 9 (тут пойдет уточнение по четвертям). Если нет таких областей — это какая-то из остальных цифр.
4. Далее в дело вступает табличка, в которой заранее прописаны примерные распределения для каждой цифры, которые я рассчитал проведя небольшое исследование:
Для каждой цифры (строки) в таблице просчитывается суммарное отклонение, там, где оно минимально считаем, что эта цифра изображена на рисунке(конечно же учитывается топология, просчитанная на шаге 3, например, если обнаружена одна замкнутая область по таблице проверяются только 0, 6 и 9).