Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
#1

Распознавание числа - C++

02.12.2012, 17:00. Просмотров 1354. Ответов 5
Метки нет (Все метки)

Пишу лабу на С++ по распознаванию чисел ... первая лаба была легкая, там просто числа нарезал 1-9.бмп и по пиксельно читал и сравнивал с тем рисунком, что рукой по Canvas(у) рисовал.

Задача стоит, распознать число нарисованное в любой области канваса ... то есть если у меня канвас 100 на 80 и я рисую не на целый шаблон, а только цифру размером 1/4 от канваса. Какие есть алгоритмы, нахождения области цифры по Х та У координатам, что б потом можно было растянуть и на класть маску ???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 17:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Распознавание числа (C++):

Распознавание базы у числа в стандартном потоке - C++
Всем доброго! Задача: вводится набор чисел с различным основание (dec, hex, oct). Нужно их преобразовать в числа с десятичным...

простейший синтаксический анализатор(Распознавание числа) - C++
Это задание является подзаданием для курсовой по формальным языкам. Мне надо(пока что только это) чтобы моя программа распознавала...

Распознавание образов - C++
здравствуйте. нужно написать программу для распознавания типов водного транспорта (лодка, корабль, подводная лодка).распознавание образов ...

распознавание текста - C++
господа такой вопрос - есть ли в свободном распространении либа или длл для распознавание отсканированного текста

Распознавание изображений - C++
Уважаемые подскажите с сл.вопросом: Так получилось что я раздолбай прогулял весь курс по С++, но теперь нужно через месяца 2-3 сдать...

Распознавание текста - C++
народ всем привет) подскажите пожалуйста литература, а если быть точнее как написать сканер текста( приложения) в каком направлении капать?...

5
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.12.2012, 12:36 #2
botasa, если в лоб, то приходит в голову такой алгоритм: надо перебрать все вертикальный и горизонтальные полосы пикселей. Сначала перебираем, например, по вертикали, слева направо. Если в очередной полосе встретились пиксель/пиксели, по цвету отличные от фонового, то эта полоса - левая граница числа. Теперь то же самое, только слева направо. Таким образом, найдём вертикальную полосу, ограничивающую число. Проделав то же самое по горизонтали, найдём прямоугольник, который и заполняет наше число. По-другому, думаю, никак, ведь число располагается в любой области холста и может иметь любые размеры, значит, придётся просканировать весь холст.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
07.12.2012, 12:56 #3
silent_1991, я бы еще добавил остальные две границы. От максимального значения ширины (высоты) канвы по убыванию. Чтобы в итоге иметь все четыре: верхнюю, нижнюю, левую, правую. По ним обрезать.
А потом надо как-то искать по косвенным признакам: к примеру, утрированно, если вертикально по центру картинки спуститься и при этом обнаружится такая последовательность смены цветов пикселей: "цвет, цвет фона, цвет, цвет фона, цвет", то это скорее всего цифра 8.

Не по теме:

А вообще распознавание чего бы то ни было - это надо умом рехнуться.

0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
07.12.2012, 15:23 #4
botasa, у тебя плохой алгоритм распознавания. Лучше использовать в таком случае нейронные сети.

Читать топик: Нейронные сети.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
07.12.2012, 16:04 #5
sovaz1997, что-то мне не кажется, что пороговая логика это хорошая область для начинающих программистов. Тем более здесь задача не стоит написать универсальный распознователь китайских иероглифов. Здесь жестко задан алфавит.

Распознавание числа
Я бы начал с
1) обрезки границ
2) разбиения полученного изображения на сектора в зависимости от предполагаемой цифры. Изменение приближения отвечало бы за точность узнавания вводимых символов.
3) поиска цветовых переходов, согласно предполагаемой цифре.

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















Или вот только что родилась идея метода обхода: находится первое изменение цвета (то есть пиксель цифры) и, продвигаясь в какую-нибудь сторону, наблюдать траекторию изменений направления цвета.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
07.12.2012, 16:45 #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
я бы еще добавил остальные две границы. От максимального значения ширины (высоты) канвы по убыванию. Чтобы в итоге иметь все четыре: верхнюю, нижнюю, левую, правую.
Советую снова перечитать мой пост))
Цитата Сообщение от silent_1991 Посмотреть сообщение
Проделав то же самое по горизонтали, найдём прямоугольник, который и заполняет наше число.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2012, 16:45
Привет! Вот еще темы с ответами:

Распознавание текста - C++
Здравствуйте. Сделал программу на C++ чтобы программа приветствовала меня и спрашивала может ли чем-нибудь мне помочь. Можно ли прописать в...

Распознавание текста - C++
Доброе утро! На форуме находится множество подобных тем, однако конкретной информации так и не было найдено. Имеется задача - научить...

Распознавание текста - C++
Здравствуйте. Пишу программу которая получает данные от другой программы (игры). Из памяти данные извлечь не получилось (запутано все много...

Распознавание кода - C++
Суть задачи в том что в программу надо задать какой-то код(html) ,и она его проверяла и находила в нём определенный тег,и выдавало это на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
07.12.2012, 16:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru