Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
1

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

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

здравствуйте!
вопрос такой: имеется заранее известная картинка. картинка четкая (это НЕ капча). на картинке в известных местах находятся 5 цифр.
делается скриншот. необходимо по нему узнать эти 5 чисел.
в какую сторону копать? есть идеи/примеры?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2010, 07:56
Ответы с готовыми решениями:

Сканирование и ввод капчи
Нужна программа, которая способна считывать и вводить капчу в определенное...

Как распознать молнию на картинке используя компьютерное зрения (OpenCV или альтернативы)
Всем привет. Передо мной стоит задача - произвольную фотографию проверить на...

Обход капчи в яндекс
Запускаю страницу яндекса через CppWebBrowser с разными прокси - выходит...

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

Как в UnicodeString быстро заменить символы на другие символы ?
Собственно, в названии темы вопрос. Например : String Data =...

13
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
29.10.2010, 08:11 2
Шрифт заранее известен? И все ли символы одним цветом, или один может быть синим, а дургйо - чёрным?
0
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 08:22  [ТС] 3
да, шрифт известен (я конечно не знаю какой, но по крайней мере один и тот же всегда)
где находятся цифры известно, размер, цвет и шрифт одинаковые
0
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
29.10.2010, 08:31 4
Если даже один и тот же всегда, но не известно, какой именно, то это всё равно, что каждый раз разный. Если бы ты точно знал, то можно сравнивать фрагменты картинки с эталонами символов, а так это не получится.
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
29.10.2010, 08:33 5
Сначала вам надо вытащить все цифры и использовать их в качестве эталонов. Потом (поскольку цифры находятся в заранее известных местах) просто сравнивать определённую часть картинки с эталоном.
0
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 08:43  [ТС] 6
а как вытащить символ?
как сравнить (неужели по пикселям О_о )?
скажите конкретные функции плз, почитаю про них
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
29.10.2010, 08:45 7
А что вас так смущает в попиксельном сравнении? Только не стоит сравнивать цвета пикселей, лучше какие-либо оттенки (промежутки цветов).
0
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
29.10.2010, 08:48 8
Первый вариант:
Если фон не меняется, то простое попиксельное сравнение, иначе анализируй каждый пиксель на принадлежность символу/фону, по результату этого анализа строй вспомогательную однобитную картинку, а потом уже её фрагменты попиксельно сравнивай с эталонами.
Второй вариант:
Выделяй края и углы и сравнивай множества их координат.
0
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 09:08  [ТС] 9
мммм, понятно и не очень сложно, согласен.
только вопрос: сделать скрин и из вот так вот вытащить цифры- за какое время? если таких цифр 40?
желательно успеть за 10 секунд... реально?
0
taras atavin
4205 / 1768 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
29.10.2010, 09:23 10
Гигафлопами 40 штук за десять секунд? Ты серьёзно?
0
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 11:24  [ТС] 11
что такое гигафлоп?
просто цифры размером 0,5 на 0,5 см. мне кажется это достаточно много, разве нет? как можно их выдрать достаточно быстро?
з.ы. можно сделать их довольно контрастными
0
LineStown
67 / 67 / 7
Регистрация: 04.08.2010
Сообщений: 426
Завершенные тесты: 1
29.10.2010, 15:23 12
Однозначно попиксельное сравнение. Картинку занести в массив и с ним работать. Подготовить базу эталонов и задать % совпадения, скажем при 80% совпадений (при различных картинках-разное количество совпадений). сделать в принципе не сложно.

Добавлено через 2 минуты
Время работы программы приблизительно (замерял давненько) 3 цифры стравнивались с 1000 эталонов, 1.5секунды (4 года назад). При хорошей машинке будет быстрее
0
CyBOSSeR
Эксперт С++
2313 / 1686 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
30.10.2010, 00:23 13
Antisymmetrizer, все уже придумано до Вас: OpenCV.
1
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
30.10.2010, 02:19  [ТС] 14
босс, не, я не файнридер же писать собрался я правда не смотрел, но я думаю что перелопатить тот код ради того, чтобы научиться читать 10 чисел, про которых известно абсолютно всё с картинки... неблагодарно будет
лайнстаун, у тебя не осталось такого кода?
0
30.10.2010, 02:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2010, 02:19

Распознать динамически созданный Image
Доброго дня! Подскажите, существует ли возможность узнать в обработчике, какой...

Как распознать математическую функцию cos, sin с ячейки StringGrid?
Возникла такая проблема. Например в какой - то ячейке StringGrid написано...

Получение картинки капчи с сайта
Всем привет, нужно скачать капчу для дальнейшего декодирования сайт :...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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