Приветствую жителей форума.
Стоит задача распознавания анкет с галочками. Программу сделал, но есть проблема: сложно обеспечить требование "ровно положить на сканер анкету". В результате того, что ее неровно положили на сканер (или неровно отпечатали) она бракуется программой, т.к. не находит галочек.
Работает программа по такому вот алгоритму:
0) на входе сканированная (300dpi) картинка в JPEG файле и база координат, по которым должны быть галочки
1) бинаризация изображения (очернобеливание)
2) поиск точки отсчета ("Г"-образный уголок)
3) для каждой области: подсчет черных пикселей и сравнение с эталонным значением на пустой анкете. Если значение отличается от элалонного на определенную величину (для учета погрешностей) записываем в базу "галочку"
4) проверяем все ответы на предмет проставленных галочек и если хоть в одном вопросе отмечен "не один" (!=1) вариант — бракуем анкету как неправильно заполненную.
Вот вкратце так. Есть мысль вычислить угол поворота и внести поправки в координаты области с галочкой. Как можно вычислить этот угол и каким образом менять координаты?
Сообщение поместил сюда, потомучто использую C# и .NET Framework 2.0.