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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
#1

Распознать символы с картинки (капчи) - C++

29.10.2010, 07:56. Просмотров 2308. Ответов 13
Метки нет (Все метки)

здравствуйте!
вопрос такой: имеется заранее известная картинка. картинка четкая (это НЕ капча). на картинке в известных местах находятся 5 цифр.
делается скриншот. необходимо по нему узнать эти 5 чисел.
в какую сторону копать? есть идеи/примеры?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 08:11     Распознать символы с картинки (капчи) #2
Шрифт заранее известен? И все ли символы одним цветом, или один может быть синим, а дургйо - чёрным?
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 08:22  [ТС]     Распознать символы с картинки (капчи) #3
да, шрифт известен (я конечно не знаю какой, но по крайней мере один и тот же всегда)
где находятся цифры известно, размер, цвет и шрифт одинаковые
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 08:31     Распознать символы с картинки (капчи) #4
Если даже один и тот же всегда, но не известно, какой именно, то это всё равно, что каждый раз разный. Если бы ты точно знал, то можно сравнивать фрагменты картинки с эталонами символов, а так это не получится.
silent_1991
Эксперт С++
4951 / 3027 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
29.10.2010, 08:33     Распознать символы с картинки (капчи) #5
Сначала вам надо вытащить все цифры и использовать их в качестве эталонов. Потом (поскольку цифры находятся в заранее известных местах) просто сравнивать определённую часть картинки с эталоном.
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 08:43  [ТС]     Распознать символы с картинки (капчи) #6
а как вытащить символ?
как сравнить (неужели по пикселям О_о )?
скажите конкретные функции плз, почитаю про них
silent_1991
Эксперт С++
4951 / 3027 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
29.10.2010, 08:45     Распознать символы с картинки (капчи) #7
А что вас так смущает в попиксельном сравнении? Только не стоит сравнивать цвета пикселей, лучше какие-либо оттенки (промежутки цветов).
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 08:48     Распознать символы с картинки (капчи) #8
Первый вариант:
Если фон не меняется, то простое попиксельное сравнение, иначе анализируй каждый пиксель на принадлежность символу/фону, по результату этого анализа строй вспомогательную однобитную картинку, а потом уже её фрагменты попиксельно сравнивай с эталонами.
Второй вариант:
Выделяй края и углы и сравнивай множества их координат.
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 09:08  [ТС]     Распознать символы с картинки (капчи) #9
мммм, понятно и не очень сложно, согласен.
только вопрос: сделать скрин и из вот так вот вытащить цифры- за какое время? если таких цифр 40?
желательно успеть за 10 секунд... реально?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 09:23     Распознать символы с картинки (капчи) #10
Гигафлопами 40 штук за десять секунд? Ты серьёзно?
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 11:24  [ТС]     Распознать символы с картинки (капчи) #11
что такое гигафлоп?
просто цифры размером 0,5 на 0,5 см. мне кажется это достаточно много, разве нет? как можно их выдрать достаточно быстро?
з.ы. можно сделать их довольно контрастными
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.10.2010, 15:23     Распознать символы с картинки (капчи) #12
Однозначно попиксельное сравнение. Картинку занести в массив и с ним работать. Подготовить базу эталонов и задать % совпадения, скажем при 80% совпадений (при различных картинках-разное количество совпадений). сделать в принципе не сложно.

Добавлено через 2 минуты
Время работы программы приблизительно (замерял давненько) 3 цифры стравнивались с 1000 эталонов, 1.5секунды (4 года назад). При хорошей машинке будет быстрее
CyBOSSeR
Эксперт C++
2298 / 1668 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
30.10.2010, 00:23     Распознать символы с картинки (капчи) #13
Antisymmetrizer, все уже придумано до Вас: OpenCV.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2010, 02:19     Распознать символы с картинки (капчи)
Еще ссылки по теме:

C++ Распознать числа в тексте
Как распознать объект? C++
Обход капчи в яндекс C++ Builder
C++ Сканирование и ввод капчи
C++ Builder Распознать динамически созданный Image

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

Или воспользуйтесь поиском по форуму:
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
30.10.2010, 02:19  [ТС]     Распознать символы с картинки (капчи) #14
босс, не, я не файнридер же писать собрался я правда не смотрел, но я думаю что перелопатить тот код ради того, чтобы научиться читать 10 чисел, про которых известно абсолютно всё с картинки... неблагодарно будет
лайнстаун, у тебя не осталось такого кода?
Yandex
Объявления
30.10.2010, 02:19     Распознать символы с картинки (капчи)
Ответ Создать тему
Опции темы

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