Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

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

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

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

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

Сканирование и ввод капчи - C++
Нужна программа, которая способна считывать и вводить капчу в определенное поле. Капча всегда в одном формате, одним шрифтом. Возможно ли...

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

Обход капчи в яндекс - C++ Builder
Запускаю страницу яндекса через CppWebBrowser с разными прокси - выходит страница с капчей. Можно ли добиться чтобы она не выходила? ...

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

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

Как в UnicodeString быстро заменить символы на другие символы ? - C++ Builder
Собственно, в названии темы вопрос. Например : String Data = "12.10.2012"; Как быстро, без конвертации в char*, заменить,...

13
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 08:11 #2
Шрифт заранее известен? И все ли символы одним цветом, или один может быть синим, а дургйо - чёрным?
0
Antisymmetrizer
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 22
29.10.2010, 08:22  [ТС] #3
да, шрифт известен (я конечно не знаю какой, но по крайней мере один и тот же всегда)
где находятся цифры известно, размер, цвет и шрифт одинаковые
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.10.2010, 08:31 #4
Если даже один и тот же всегда, но не известно, какой именно, то это всё равно, что каждый раз разный. Если бы ты точно знал, то можно сравнивать фрагменты картинки с эталонами символов, а так это не получится.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.10.2010, 08:45 #7
А что вас так смущает в попиксельном сравнении? Только не стоит сравнивать цвета пикселей, лучше какие-либо оттенки (промежутки цветов).
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
29.10.2010, 15:23 #12
Однозначно попиксельное сравнение. Картинку занести в массив и с ним работать. Подготовить базу эталонов и задать % совпадения, скажем при 80% совпадений (при различных картинках-разное количество совпадений). сделать в принципе не сложно.

Добавлено через 2 минуты
Время работы программы приблизительно (замерял давненько) 3 цифры стравнивались с 1000 эталонов, 1.5секунды (4 года назад). При хорошей машинке будет быстрее
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 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? - C++ Builder
Возникла такая проблема. Например в какой - то ячейке StringGrid написано cos(60), как мне именно распознать его не как текст, а как мат....

Распознать текст из картинки - Visual Basic .NET
Вообщем есть картинка, на ней текст. Нужно распознать, что там написано.. Если не трудно, или ткнуть носом в похожее (гуглил, ничего не...

Распознать цифру с картинки - Java SE
Как можно распознать цифры с картинки в Java? Интересен алгоритм и возможности его решения. Спасибо.

Распознать текст с картинки - C#
перерыл множество тем на этом форуме да и в Инете вообще, но так и не нашел решение данной проблемы. Подскажите пожалуйста есть ли...


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

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

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