Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распознование бланка анкеты, Роспознование цифр и квадратов на изобра 
:(
    Опции темы
Ali002
Дата 11.4.2014, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.4.2014

Репутация: нет
Всего: нет



Люди!!!
Подскажите пожалуйста как подготовить шаблон изображения - бланк анкеты стандартный, далее алгоритм поиска ячеек (квадратики) ответов на бланке анкеты(отсканированная анкета).
Как определить координаты нужных ячеек и как сохранять расстояние между центрами ячеек каждого вопроса и размеры ячеек. И как распознать символ в ячейке?
И можно поподробнее про поиск квадратиков есть примеры алгоритма этого поиска желательно код 

Как исключать внутренние области квадратов и как положение строки квадратов находить, можете кодом показать на примере ? 


Это сообщение отредактировал(а) Ali002 - 22.5.2014, 21:39
PM MAIL   Вверх
jonie
Дата 11.4.2014, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



такую анкету распознать не сложно.
1) очевидно что анкета будет отсканирована. Желательно сразу сканировать в серые тона.
2) далее устранить поворот изображения используя преобразования Хафа (Hough transform) для определения угла поворота.
3) (я бы делал так) далее вам надо определить реальные границы зоны интереса (вашего листа прямоугольник). Его можно взять из п2, очевидно. 
4) Более того, т.к. это анкета, то Вам известны примерные параметры соотношения сторон прямоугольника нужного вам. Исходя из этой информации вы можете предпологать где находятся квадратики (полоса шириной какой вам надо).
5) В этой полосе вам придётся искать закрашенные квадратики. Для этого можно использовать бинаризированное изображение. В зависимости от качества алгоритмы разные. Думаю вам подойдет адаптивная локальная бинаризация вроде алгоритма Bradley (хз как по-русски чувака зовут). 
6) Делите вертикальную полосу на строки (да хоть хафом опять ж или по яркостным диаграммам). И строите яркостную гистограмму по этой полосе. В местах заштриховывания будет выраженый пик гистограммы. Предварительно полосу можно очищать от мусора (например пройдясь матрицей 3*3). Конечно, можно квадраты искать по алгоритму Susan или какому другому, но, думаю, тут это будет избыточно.

собственно всё.

ЗЫ: а при чем тут .net и базы данных-то?!

Это сообщение отредактировал(а) jonie - 11.4.2014, 19:03


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Ali002
Дата 11.4.2014, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.4.2014

Репутация: нет
Всего: нет



Цитата(jonie @ 11.4.2014,  19:00)

6) Делите вертикальную полосу на строки (да хоть хафом опять ж или по яркостным диаграммам). И строите яркостную гистограмму по этой полосе. В местах заштриховывания будет выраженый пик гистограммы. 

А можно с этого места по подробнее и если есть может код примерный ?
И вообще как запоминать места ячеек и узнавать какое значение ей присваивать? нужен же шаблон да? а я не знаю как его сдлеть из изображения, помогите пожалуйста
PM MAIL   Вверх
jonie
Дата 12.4.2014, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата(Ali002 @  12.4.2014,  00:48 Найти цитируемый пост)

А можно с этого места по подробнее и если есть может код примерный ?



http://mechanoid.kiev.ua/programming-text-...egmentator.html
вот вам примерный алгоритм


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Ali002
Дата 12.4.2014, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.4.2014

Репутация: нет
Всего: нет



Цитата(jonie @ 12.4.2014,  19:03)
Цитата(Ali002 @  12.4.2014,  00:48 Найти цитируемый пост)

А можно с этого места по подробнее и если есть может код примерный ?



http://mechanoid.kiev.ua/programming-text-...egmentator.html
вот вам примерный алгоритм

Благодарю!! не увидела этого сообщения smile 
PM MAIL   Вверх
Ali002
Дата 13.4.2014, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.4.2014

Репутация: нет
Всего: нет



Цитата(jonie @ 11.4.2014,  19:00)
такую анкету распознать не сложно.
1) очевидно что анкета будет отсканирована. Желательно сразу сканировать в серые тона.
2) далее устранить поворот изображения используя преобразования Хафа (Hough transform) для определения угла поворота.
3) (я бы делал так) далее вам надо определить реальные границы зоны интереса (вашего листа прямоугольник). Его можно взять из п2, очевидно. 
4) Более того, т.к. это анкета, то Вам известны примерные параметры соотношения сторон прямоугольника нужного вам. Исходя из этой информации вы можете предпологать где находятся квадратики (полоса шириной какой вам надо).
5) В этой полосе вам придётся искать закрашенные квадратики. Для этого можно использовать бинаризированное изображение. В зависимости от качества алгоритмы разные. Думаю вам подойдет адаптивная локальная бинаризация вроде алгоритма Bradley (хз как по-русски чувака зовут). 
6) Делите вертикальную полосу на строки (да хоть хафом опять ж или по яркостным диаграммам). И строите яркостную гистограмму по этой полосе. В местах заштриховывания будет выраженый пик гистограммы. Предварительно полосу можно очищать от мусора (например пройдясь матрицей 3*3). Конечно, можно квадраты искать по алгоритму Susan или какому другому, но, думаю, тут это будет избыточно.

собственно всё.

ЗЫ: а при чем тут .net и базы данных-то?!

Мне необходимо запомнить места ячеек для того чтобы потом сравнивать с их положением другие анкеты и как то узнавать что под такой то цифрой такая ячейка, извиняюсь за настойчивость но я просто не догоняю как это сделать с помощью наложения полос необходимой ширины ведь в последующих анкетах возможны какие то изменения этих полос? Подскажите как запомнить координаты ячеек в базе! а перед тем как запомнить как найти необходимые ячейки МОЖЕТЕ КОД кинуть хотя бы примерный 
PM MAIL   Вверх
jonie
Дата 16.4.2014, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



под каждый анкетный тип листа вам стоит сделать "шаблон", где в процентах будет описано где ячейки примерно лежат, а уже алгоритм будет использовать эти данные для кросс-проверке при разборе конкретного листа конкретного типа.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Ali002
Дата 20.4.2014, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.4.2014

Репутация: нет
Всего: нет



Цитата(jonie @ 16.4.2014,  10:39)
под каждый анкетный тип листа вам стоит сделать "шаблон", где в процентах будет описано где ячейки примерно лежат, а уже алгоритм будет использовать эти данные для кросс-проверке при разборе конкретного листа конкретного типа.

всмысли под каждый анкетный лист? может быть 1 шаблон сделать на все случаи? а как сделать этот шаблон? тоесть в каком формате 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0794 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.