Классно, что всё получилось. Недавно была похожая задача — тоже бланки опросов распознать. Взялся за C#+OpenCV (EmguCV), тоже бинаризация (threshold), определение поворота, разбивка на регионы. Но, к сожалению, затея провалилась, т. к. бланки оказались разные (несколько вариантов с разным расположением граф), и нужно было отличать + от -. Задача была разовая, и ручная обработка заняла меньше времени, чем написание кода.
Как собираетесь бороться с нестандартностью и разнообразием бланков? Не во всех бланках ячейки идут такими удобными ровными столбиками без текста. Не станет ли это проблемой?
Если поиск ячеек базируется по яркости, будет ли работать алгоритм на цветном бланке?
Вы хотите выдать продукт людям. Будет ли это открытый исходный код или как-то иначе? Что делать тем, кто не умеет компилить, но хочет пощупать?
Меня очень заинтересовал ваш продукт. Желаю вам успехов и сил довести всё до конца.
В базе данных хранятся координаты ячеек, поэтому разнообразия бланков не страшно.
Любое цветное изображение бинаризируется, то есть преобразуется в черно-белое, а уж потом распознается.
Это будет библиотека для распознавания бланков тестирования с открытым исходным кодом и тестовым приложением.
[реклама] ocrsdk.com/plans-and-pricing/
Помимо обычного распознавания текста возможно сделать также рукопечатное (например, когда от руки пишут по одной букве в клеточку) распознавание или распознавание меток, как в вашем случае.
Ну а если нужно распознавать гибкие формы — то тут уже надо смотреть в сторону FlexiCapture
[/реклама]
Нафиг это облако (если только не разовая акция) — проще какой-нибудь «Омнипейдж» купить, настроить распознавание с экспортом в csv и не париться (особенно, если бланки разные и могут менятся).
Распознавание бланков психологического тестирования с нуля