Распознавание текста в картинке

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
PILIGRIM
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 25.07.2005 (Пн) 22:35

Распознавание текста в картинке

Сообщение PILIGRIM » 24.03.2006 (Пт) 16:41

Люди, подскажите пожалуйста, как можно организовать поиск текста в картинке, т.е. необходимо найти и распознать символ и записать его например в TextBox.
Последний раз редактировалось PILIGRIM 24.03.2006 (Пт) 18:03, всего редактировалось 1 раз.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.03.2006 (Пт) 16:42

Что за картинка?
Lasciate ogni speranza, voi ch'entrate.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.03.2006 (Пт) 16:45

Скорее всего, ключевое слово - нейронные сети.

Приведи конкретный пример картинки. Лучше всего - ссылку.

PILIGRIM
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 25.07.2005 (Пн) 22:35

Сообщение PILIGRIM » 24.03.2006 (Пт) 16:47

Картинка любая, например *.bmp или *.jpg

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.03.2006 (Пт) 16:50

Из "любой картинки" текст не вытащить. Для каждого характерного типа картинки будет свой алгоритм.

Представь, что на фоне розового заката у тебя написаны 15 строчек. Одна поверх другой.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.03.2006 (Пт) 16:51

PILIGRIM писал(а):Картинка любая, например *.bmp или *.jpg

А.
Удачи.
Lasciate ogni speranza, voi ch'entrate.

PILIGRIM
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 25.07.2005 (Пн) 22:35

Сообщение PILIGRIM » 24.03.2006 (Пт) 17:03

Хорошо, а какой тогда формат вы посоветуете?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.03.2006 (Пт) 17:05

А причем тут формат? Ключевым словом является "любая".
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.03.2006 (Пт) 17:06

Ого...
Удачи вдвойне.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 24.03.2006 (Пт) 17:16

Всё же дам ссылку: http://www.orc.ru/~stasson/neurox.html
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

PILIGRIM
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 25.07.2005 (Пн) 22:35

Сообщение PILIGRIM » 24.03.2006 (Пт) 18:10

Я что-то не совсем понял эту статью, может есть у кто-нибудь пример?
Пусть это будит даже любая картинка.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.03.2006 (Пт) 18:16

Забудь. Алгоритм на "любой" картинке практически нереализуем. То, что ты "не совсем понял" статью, неудивительно - разобраться в нейронных сетях за час весьма сложно :lol:
Быть... или не быть. Вот. В чём вопрос?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.03.2006 (Пт) 18:16

Пойми ж наконец, что любую картинку распознать нельзя. К тому же, если статья тебе непонятна, пример будет совершенно непонятен.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 24.03.2006 (Пт) 20:49

Ну, автор, я надеюсь, понял свою ошибку..

Только у меня вопрос появился - при чем здесь нейронные сети?
Я полгода довольно тщательно изучал данный предмет.. Но то, что на VB можно реализовать некий FineReader посредством нейросетей - в первый раз слышу..

Если действительно есть пример (2Amed) - дайте, плз..

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.03.2006 (Пт) 20:59

Вот пример из моей коллекции. Прямо сейчас работоспособность не проверял, и комментариев нормальных не дам. Но оно работало :)
Вложения
text_recognition.rar
(37.89 Кб) Скачиваний: 203

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.03.2006 (Пн) 11:29

AjaxVS, как ты, наверное, сам понимаешь, нейронные сети не привязаны ни к языку программирования, ни к конкретной задаче. Что тогда может помешать реализовать распознавание образов с помощью нейросетей на VB? :)
Быть... или не быть. Вот. В чём вопрос?

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 28.03.2006 (Вт) 0:09

Та да, глуповато у меня получилось =)
Ну что.. посмотрел я пример.. Если честно, ожидал намного большего..
Для меня все как было, так и осталось - нейронные сети - это будущее. Но совсем не настоящее. Будущее, к которому еще долго идти..

К этому топику, кстати, прога абсолютно не применима.. Это совсем не FineReader +_+

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.03.2006 (Вт) 0:18

Ошибаешься про абсолютно неприменима :)
Сделай к примеру динамическое формирование БД образов и "умное распознавание" почти готово.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 28.03.2006 (Вт) 8:28

Писал распознование. Нейронные сети не такое уж и будущее, а вполне себе настоящее. Но распознавание я писал без них. Алгоритм действительно писать надо под конкретную задачу. Более того если для 50% букв найти особенности (наличие закольцованности ("о") или двух("в"), хвостик ("ц" и "щ") и.т.д.) которые легко вычислить, и сделать правильный алгоритм вычленения букв из текста, то распознование становится очень точным. При этом должен быть какой-то алгоритм который для буквы будет вычислять определенную величину. (у меня это было отношение диагональных вертикальных и горизонтальных отрезков т.к. был масштаб и не весь алфавит) По этой величине ищем букву ближайшую из отсеянных по особенностям. Ну и конечно реализовать некоторую обучаемость (т.е. уточнять эту величину по полученным результатам)

Чистой нейронной сеткой тоже можно попробовать обойтись, но это весьма кривое решение, и оно дает результат примерно такой же как подсчет пикселей отклонения. Если её и использовать, то только как один из этапов. Предварительно должен быть достаточно сложный алгоритм поиска, поворота букв, и алгоритм отсеивания.

Писал давно, на Паскале. так что исходника не будет :P


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 193

    TopList