Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > Распознование бланка анкеты |
Автор: Ali002 11.4.2014, 10:54 |
Люди!!! Подскажите пожалуйста как подготовить шаблон изображения - бланк анкеты стандартный, далее алгоритм поиска ячеек (квадратики) ответов на бланке анкеты(отсканированная анкета). Как определить координаты нужных ячеек и как сохранять расстояние между центрами ячеек каждого вопроса и размеры ячеек. И как распознать символ в ячейке? И можно поподробнее про поиск квадратиков есть примеры алгоритма этого поиска желательно код Как исключать внутренние области квадратов и как положение строки квадратов находить, можете кодом показать на примере ? |
Автор: jonie 11.4.2014, 19:00 |
такую анкету распознать не сложно. 1) очевидно что анкета будет отсканирована. Желательно сразу сканировать в серые тона. 2) далее устранить поворот изображения используя преобразования Хафа (Hough transform) для определения угла поворота. 3) (я бы делал так) далее вам надо определить реальные границы зоны интереса (вашего листа прямоугольник). Его можно взять из п2, очевидно. 4) Более того, т.к. это анкета, то Вам известны примерные параметры соотношения сторон прямоугольника нужного вам. Исходя из этой информации вы можете предпологать где находятся квадратики (полоса шириной какой вам надо). 5) В этой полосе вам придётся искать закрашенные квадратики. Для этого можно использовать бинаризированное изображение. В зависимости от качества алгоритмы разные. Думаю вам подойдет адаптивная локальная бинаризация вроде алгоритма Bradley (хз как по-русски чувака зовут). 6) Делите вертикальную полосу на строки (да хоть хафом опять ж или по яркостным диаграммам). И строите яркостную гистограмму по этой полосе. В местах заштриховывания будет выраженый пик гистограммы. Предварительно полосу можно очищать от мусора (например пройдясь матрицей 3*3). Конечно, можно квадраты искать по алгоритму Susan или какому другому, но, думаю, тут это будет избыточно. собственно всё. ЗЫ: а при чем тут .net и базы данных-то?! |
Автор: Ali002 11.4.2014, 23:48 | ||
А можно с этого места по подробнее и если есть может код примерный ? И вообще как запоминать места ячеек и узнавать какое значение ей присваивать? нужен же шаблон да? а я не знаю как его сдлеть из изображения, помогите пожалуйста |
Автор: Ali002 12.4.2014, 21:02 | ||||
Благодарю!! не увидела этого сообщения ![]() |
Автор: Ali002 13.4.2014, 13:41 | ||
Мне необходимо запомнить места ячеек для того чтобы потом сравнивать с их положением другие анкеты и как то узнавать что под такой то цифрой такая ячейка, извиняюсь за настойчивость но я просто не догоняю как это сделать с помощью наложения полос необходимой ширины ведь в последующих анкетах возможны какие то изменения этих полос? Подскажите как запомнить координаты ячеек в базе! а перед тем как запомнить как найти необходимые ячейки МОЖЕТЕ КОД кинуть хотя бы примерный |
Автор: jonie 16.4.2014, 10:39 |
под каждый анкетный тип листа вам стоит сделать "шаблон", где в процентах будет описано где ячейки примерно лежат, а уже алгоритм будет использовать эти данные для кросс-проверке при разборе конкретного листа конкретного типа. |
Автор: Ali002 20.4.2014, 19:21 | ||
всмысли под каждый анкетный лист? может быть 1 шаблон сделать на все случаи? а как сделать этот шаблон? тоесть в каком формате |