| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Распознование. |
| Автор: Links 17.2.2005, 19:58 |
| Итак, Есть, скажем bmp или jpg. Открываем, Ищем попиксельно точку отсчёта, пусть какая то красная среди серо-зелёного. Запоминаем координаты, отсчитываем вниз, скажем 20 пикселей и влево 80. Переводим картинку в чёрнобелую... и загоняем получившуюся рамку пикселей в массив. 0*************************** * * *** * * * * * * * * *** * **************************** В этой рамке находятся цифры. Мне нужно их распознать. Они определённого вида, как в тестере или калькуляторе... палочками нарисованы. Поможете? Саму тактику распознавания я уже определил.. я беру на каждой палочке(от цифры) прямоугольник и определяю есть ли там чорные пиксели. Вы мне помогите в открытии файла\переводе его в двухцветный и как загнать это в массив... 10101010... и т.д. |
| Автор: maxim1000 17.2.2005, 20:20 | ||||
| есть такой компонент Image дальше по памяти (т.к. Delphi под рукой нету)
а взять однобитный цвет... ну например так:
только надо быть уверенным, что закрашенные точки абсолютно черные (все компоненты - нулевые) иначе надо будет писать более (ненамного) интеллектуальную процедуру отсева... |
| Автор: Links 18.2.2005, 12:23 |
| Хм.. не совсем понимаю... : 1) x,y - это координаты пикселя на картинке.. или на монике?=) 2) image.canvas.pixels[x,y]=0 - это что он делает? нелья зли перевести сначала в ч\б ..... ?? чтобы наверняка знать, что там будет ч . или или б. *сорри за глупые вопросы* |
| Автор: maxim1000 18.2.2005, 12:30 | ||||
на картнике, можно вообще это на мониторе не показывать, если не надо
1. берет объект image 2. вытаскивает из него объект canvas (используется в том числе и для работы с пикселями) 3. вытаскивает из canvas свойство pixels (попиксельный доступ) 4. берет значение пикселя с координатами x,y 5. сравнивает его с нулем |
| Автор: Links 19.2.2005, 12:01 | ||
Да, но это нужно тогда когда картинка чёрно-белая. Иначе цвет цифр никогда в жизни чёрным не будет... Во мне и нужно её перевести в ч.б. |
| Автор: Александра 20.2.2005, 19:26 | ||||||
| а какого они цвета? или какой фон? ведь не обязательно переводить в ч/б... а еще лучше пример картинки приведи... или воспользуйся например нейронной сетью Хемминга... писала правда сама, не оптимизированно, но все же...
обучение:
ну а далее распознование:
|
| Автор: Links 21.2.2005, 21:10 | ||
| www.ic-graphics.net/images/l/Image-01.jpg www.ic-graphics.net/images/l/Image-03.jpg www.ic-graphics.net/images/l/Image-04.jpg www.ic-graphics.net/images/l/Image-05.jpg www.ic-graphics.net/images/l/Image-06.jpg www.ic-graphics.net/images/l/Image-07.jpg www.ic-graphics.net/images/l/Image-08.jpg www.ic-graphics.net/images/l/Image-09.jpg Примерные картинки. www.ic-graphics.net/images/l/Image-01.bmp - То, что неплохо бы получить и распознать.
=) Подробнее.. я такого не знаю совсем... |
| Автор: Александра 22.2.2005, 01:51 | ||
| короче тебе необходимо получить каждую циферку отдельно, т.е. набор картинок, одинакового размера.. далее в режиме обучения грузи их в image1, типа image1.picture.loadfromfile(inttostr(i)+'.bmp'). после того, как сеть обучена, в image2 помешаешь ту картинку (циферку), которую хочешь распознать. алгоритм по их вырезанию, ты уже вроде как сделал. но тут надо учесть, чтобы она максимально приближалась к исходным, т.е. не было смешения (лишних зон), вырезай все по краям и есессно такого же размера. (данные обучения - InputRow, можно сохранить, например в файл). в результата в iIndex у тебя будет индекс выйгравшего нейрона, т.е. твоя цифра, т.к. при обучения каждый нейрон по порядку мы заполняли цифрой с тем же индексом...
я и привела пример ее релизации, в интернете очень много доков по нейроным сетям. З.Ы. http://www.ic-graphics.net/images/l/Image-01.bmp - будет отлично распозновать, главное чтобы цифры всегда были в одной и той же позиции. |
| Автор: Romtek 24.2.2005, 11:26 |
| С нейронными сетями дело будет глухо. Необходимо хорошее знание высшей математики, Кроме того, изучение их займёт кучу времени. Действительно, сначала стоит перевести в ч/б картинку, а потом уже распознавать. |
| Автор: Александра 24.2.2005, 12:47 |
| Romtek почему же, по последней картинке видно что автор вполне справился с преобразованием в Ч/Б, ну а дальше пример отлично сработает, если цифру грамотно выделять. а кому интересно, могу сбросить кучи инфы насчет НС, правда в теории только (( |
| Автор: Julia19 24.4.2012, 23:24 |
| Саша, можно тебя попросить скинуть инфы!!!! |
| Автор: MetalFan 25.4.2012, 14:26 |
| Julia19, ого... зачем ворошить умершие темы? А Саша больше года не заходила на форум... что видно из ее профиля. |