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

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

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

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

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

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

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

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

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

13
taras atavin
4204 / 1763 / 212
Регистрация: 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
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
29.10.2010, 08:31 #4
Если даже один и тот же всегда, но не известно, какой именно, то это всё равно, что каждый раз разный. Если бы ты точно знал, то можно сравнивать фрагменты картинки с эталонами символов, а так это не получится.
0
silent_1991
Эксперт С++
5007 / 3065 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 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
Эксперт С++
5007 / 3065 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
29.10.2010, 08:45 #7
А что вас так смущает в попиксельном сравнении? Только не стоит сравнивать цвета пикселей, лучше какие-либо оттенки (промежутки цветов).
0
taras atavin
4204 / 1763 / 212
Регистрация: 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
4204 / 1763 / 212
Регистрация: 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
66 / 66 / 6
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.10.2010, 15:23 #12
Однозначно попиксельное сравнение. Картинку занести в массив и с ним работать. Подготовить базу эталонов и задать % совпадения, скажем при 80% совпадений (при различных картинках-разное количество совпадений). сделать в принципе не сложно.

Добавлено через 2 минуты
Время работы программы приблизительно (замерял давненько) 3 цифры стравнивались с 1000 эталонов, 1.5секунды (4 года назад). При хорошей машинке будет быстрее
0
CyBOSSeR
Эксперт С++
2309 / 1682 / 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
Привет! Вот еще темы с решениями:

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

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

Добавить картинки для капчи
Здравствуйте. Нужна помощь. Как добавить(Куда прописать) в капчи ещё картинок и...

Распознать текст из картинки
Вообщем есть картинка, на ней текст. Нужно распознать, что там написано.. Если...


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

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

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