![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| CyClon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
В общем, хочу попробовать написать скрипт, которой будет распознавать цифры на картинке. В качестве картинки решил взять картинку из регистрации IPB, т.к. она более интерестна, чем на других форумах или CMS + не нужно мучаться с буквами и т.д.
В общем, в качестве картинки берем: http://proteam.com.ru/image.jpg Цель: получить переменную:
Итак, меня интересует на данный момент несколько вопросов: 1. Теория распознания. Что нужно сделать сначала, что потом и т.д. В общем как распознать картинку за меньшее время и меньшей затратой ресурсов. И возможно ли это средствами PHP (Я считаю, да 2. Какие функции нужно использовать при распознани, т.к. чтобы я мог конекретно прочитать манул по определенным функциям. Вообще меня интересует функцию обрезания изображения, чтобы сразу после получения изображения обрежат его, т.к. цифры на картинке появляются в одном и том же месте и ежду ними и краем картинки немаленькое количество пустого пространства, которое скрипт анализирует и тратит на него время и системные ресурсы. Также функция обрежания нужно для сравнивания с эталонами каждой цифры, т.к. полностью картинку сравнить неудастся в связи с большым кол-во эталоном (999999 штук). Вот код, который я уже написал - сравнение двух картинок и определение процента совпадения:
Это сообщение отредактировал(а) CyClon - 26.9.2006, 11:18 |
||||
|
|||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
В общем, для начала нужно получить из http://proteam.com.ru/image.jpg - http://proteam.com.ru/edit.jpg. Как это сделать средствами PHP, то есть обрезать?
И еще вопрос: функция imagecolorat возвращает так называемые "индексы цветов". Что они обозначают, как из индекса получить RGB цвет? То есть я хочу произвети проверку не цвет, и светлые цвета откинуть. Добавлено @ 11:48 P.S. Обрезав картинку мы экономим ~65% времени и ресусрсов, ну учитывая время и ресурсы на саму обрезку. Кол-во пикселей оригинальной картинки = 210 * 65 = 13650 Кол-во пикселей обрезаной картинки = 147 * 32 = 4704 Экономия = 100 - (4704 / 13650) * 100 ~ 66% Так что варианты "Анализируй полностью, нах резать" не предлагать |
|||
|
||||
| Garret |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 16.9.2006 Где: Киев Репутация: нет Всего: 2 |
Эх спаммер...
Попробуй взять с captcha.ru |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 2 Всего: 32 |
![]() Слабо? =) А вообще, если нужен универсальныый вариант, то копать надо в сторону нейросетей. PHP в этом плане мало чем поможет. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Делал бы ради спама, делал бы универсально. Просто хочется написать скрипт, который сможет распознать цифры, попрактиковаться с GD2 и вообще пару раз испытать
Жестко. Я в 10 классе, решать такое не умею |
|||
|
||||
| Garret |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 16.9.2006 Где: Киев Репутация: нет Всего: 2 |
Я закончил курс высшей математики и тоже не решу
|
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Естественный отбор ;)
Кто что может сказать по теме. Смотрел http://captcha.ru/ - весело. Только исходников там нет, а работает вроде быстро |
|||
|
||||
| Garret |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 16.9.2006 Где: Киев Репутация: нет Всего: 2 |
CyClon, исходники там есть, посмотри внимательнее.
|
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Процесс немного продвигается - обрезал изображение с помощью функции imagecopy до нужных размеров. Теперь интересует, как повысить контраст и определить цвет пикселя в RGB, а не индексом.
Хочу затереть все светлые пиксели. чтобы осталось только цифры. Потом нарисовать эталонов и вуоля. Добавлено @ 12:54 Да нет, там вроде только исходники защиты, то есть чтобы заменить этот код на более совершенный. А исходников распознания не видел. Сейчас еще посмотрю. |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва Репутация: 2 Всего: 32 |
imagecolorat() + GD 2.0 + картинка, созданная при помощи imagecreatetruecolor() Их там и нет. -------------------- Three pings for the token rings, Five pings for the UNIX machines, Hundred pings for the broken links, One special ping to check them all Through Simple Network Management Protocol! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Ты реаьлно думаешь реализовать алгоритм FineReader'a? Слишком высокие амбиции...
Читай про нейросети, как сказал Мутоген, а лучше займись чем-ть реально реализуемым. |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Ребят вы или не читаете или хз что... Я же сказал, пишу этот скрипт только ради практики работы с GD2, чтобы потом, при создании графического счетчика я не лез в мануал за справкой по imagestring. Также просто хочется написать хитрый, но не муторный скрипт, которые на интернет-свалках не валяются, как гостевые книги и голосовалки. Голосование или ту же гостевую книгу писать - не для меня. Единстевнное, над чем там нужно подумать - организация БД / каталогов / работы скрипта. А сам скрипт - потсоянные запросы в БД, обрабока и вывод.
А по делу - вроде бы все сделал, все работает. Единственные проблемы - это чудесное превращение указателя (resouce) и число (int) и вылет ошибки и то, что я не знаю, как убрать фон. Мне нужно как то убрать все кроме более-менее черного цвета, т.к. сравнивает обсолютно не правильно, ведь фон содердит основное кол-во пикселей. Подскажите как затереть задний фон или сравнивать только темные пиксели. С ошибкой попробую пока сам разобарться. Это сообщение отредактировал(а) CyClon - 26.9.2006, 18:05 |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Так кто нибудь может рассказать, как убрать фон и оставить только фицры или сравнивать только темные пиксели? Кстати, на счет createimagetruecolor, когда его создаю, то получается черный квадрат, а с createimage норм все.
Это сообщение отредактировал(а) CyClon - 26.9.2006, 19:07 |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Значит, вернулся к этой теме
|
|||
|
||||
| ВасяТриллер |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 2.9.2005 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Графика | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |