Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Требует узнать координаты объекта изображенного на картинке
 
 автор: Indemion   (08.11.2007 в 12:42)   письмо автору
 
 

Уважаемые коллеги, в процессе создания программы для автопокупки предметов, я уже не один раз обращался к вам за помощью . Увы, работа не давала закончить сей труд, но вот оказавшись в отпуске, мой детеныш снова меня затеребил :) Посидев пару дней я приблизился к финальной части программы, но столкнулся с неразрешимой для себя задачей.

Итак, есть форма:
<form action="haggle.phtml" name="haggleform" method="post">
Your Offer:  <input type="text" name="current_offer" value="0" size="5" maxlength="8">
<input type="image" src="/captcha_show.phtml?_x_pwned=df9d2312ecd966f33f1f87fbf22b65f8">
</form>
При нажатие на картинку происходит отправка данных:
current_offer – цена предмета
x и y – координаты мыши

Чтобы успешно осуществить сделку требуется кликнуть на зверька (обведен на картинке красным цветом). Каждый раз его положение на картинке генерится заново. Как можно из этих координат "df9d2312ecd966f33f1f87fbf22b" получить значения для вычисления любой находящейся «внутри» зверька координаты по x и y?

Картинка тут:
http://www.neopets.com.ru/other/captcha_show.jpg

   
 
 автор: sim5   (08.11.2007 в 12:51)   письмо автору
 
   для: Indemion   (08.11.2007 в 12:42)
 

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

   
 
 автор: Indemion   (08.11.2007 в 13:04)   письмо автору
 
   для: sim5   (08.11.2007 в 12:51)
 

Так вот мне и нужно послать правильные координаты, но как вычислить их по картинке я не знаю.

   
 
 автор: sim5   (08.11.2007 в 13:07)   письмо автору
 
   для: Indemion   (08.11.2007 в 13:04)
 

Ну вы же накладываете этого зверька на изображение, значит можете сохранить его левые верхние кординаты и размер, например, в сессии. Получив потом координаты от кнопки, достаточно обычной арифметикой вычислить находятся ли они в области координат зверька.

   
 
 автор: Indemion   (08.11.2007 в 13:21)   письмо автору
 
   для: sim5   (08.11.2007 в 13:07)
 

Не я накладываю. Мне выдается готовое изображение зверька, которое видимо генерится на сайте. Что есть это "_x_pwned=df9d2312ecd966f33f1f87fbf22b65f8" - не знаю, может № картинки в базе данных.

Вообще посетила такая идея. Я могу раздобыть картинку без зверька (№1) и взять эту картинку со зверьком (№2). Но как при наличии эти двух картинок "отнять их друг от друга" и получить только зверька в чистом виде?

   
 
 автор: sim5   (08.11.2007 в 13:26)   письмо автору
 
   для: Indemion   (08.11.2007 в 13:21)
 

Тогда конечно не узнать. Но тогда лучше добавить картинке маппинг, вот только маппинг на SUBMIT не пробовал, будет ли работать как надо. Но можно попробовать. Или другое продумать, связанное с мапом.

PS. А почему не вы накладываете, кто скрипт пишет, и кто выдает готовое?

   
 
 автор: Indemion   (08.11.2007 в 16:21)   письмо автору
 
   для: sim5   (08.11.2007 в 13:26)
 

Я пишу скрипт автопокупки из магазина в браузерной онлайн-игре. Там все картинки и генерятся. А я уже подлажу через соккет, собираю информацию, фильтрую и вот, дошел до такой заморочки с картинкой. :)

   
 
 автор: sim5   (08.11.2007 в 16:30)   письмо автору
 
   для: Indemion   (08.11.2007 в 16:21)
 

Ничего не пойму, кто эти координаты проверяет вы или кто-то на стороне (в игре)?

   
 
 автор: KPETuH   (08.11.2007 в 16:39)   письмо автору
 
   для: Indemion   (08.11.2007 в 16:21)
 

тут возможно вам поможет что типа распознавания картинки определния цветов и тд, я такое читал в статье по взлому каптчи :)

   
 
 автор: sim5   (08.11.2007 в 16:42)   письмо автору
 
   для: KPETuH   (08.11.2007 в 16:39)
 

Ну если проверку "горячей области" делает кто-то, то зачем ее узнавать? Тыкать прямо в пупок зверьку, не ошибешься :-)) Или я не врубаюсь в задаче, чтобы автоматом? :)

   
 
 автор: KPETuH   (08.11.2007 в 16:49)   письмо автору
 
   для: sim5   (08.11.2007 в 16:42)
 

я так понял пишут бота для онлайн игры :)

   
 
 автор: sim5   (08.11.2007 в 16:51)   письмо автору
 
   для: KPETuH   (08.11.2007 в 16:49)
 

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

   
 
 автор: Indemion   (08.11.2007 в 16:58)   письмо автору
 
   для: sim5   (08.11.2007 в 16:51)
 

Он полупрозрачный и каждый раз занимает разное место на странице.
Вот и у меня есть идея искать по палитре. Можно как-то сравнить две картинки? Пустая и со зверьком, а найдя точку отличия узнать координаты точки? Если можно, то как?

   
 
 автор: sim5   (08.11.2007 в 17:06)   письмо автору
 
   для: Indemion   (08.11.2007 в 16:58)
 

Можно конечно, получая индекс цвета пикселя в указанной координате.
PS. Если первый попавшийся цвет индекса не совпадает с индексом исходного (пустого) изображения, то это верхние левые координаты. Добавляем примерную ширину и высоту зверька, находим середину - по идее как раз пупок его будет :-) Можно так попробовать.

   
 
 автор: kasmanaft   (08.11.2007 в 17:00)   письмо автору
 
   для: sim5   (08.11.2007 в 16:51)
 

Нет, зверек полупрозрачный.. Я бы вот что посоветовал: нужно определить координаты круга (левый край, верхний, правый и низ), и послать среднее между ними. Красный в приведенной картине - это что то ~250 ~100 ~80 (RGB). Проанализировать несколько таких картинок и вперёд :)

   
 
 автор: kasmanaft   (08.11.2007 в 17:31)   письмо автору
 
   для: kasmanaft   (08.11.2007 в 17:00)
 

-

   
 
 автор: Indemion   (09.11.2007 в 10:37)   письмо автору
 
   для: kasmanaft   (08.11.2007 в 17:31)
 

Дело в том, и это моя вина, что круг нарисовал я - для наглядности (вдруг кто зверька не заметит).
Чистая картинка, без круга, выглядит так: http://www.neopets.com.ru/other/captcha_show2.jpg

   
 
 автор: kasmanaft   (09.11.2007 в 10:43)   письмо автору
 
   для: Indemion   (09.11.2007 в 10:37)
 

Тьфу блин :))
А я ее вчера-таки "взломал" ... (никогда ничем подобным не занимался, интересно стало)
Минут за 20... Еще удивлялся: что за защита такая, легко так обходится :)

Если интересно, код прикреплю :)

   
 
 автор: sim5   (09.11.2007 в 12:48)   письмо автору
 
   для: Indemion   (09.11.2007 в 10:37)
 

А почему "зверек" прозрачный? Не видно такого.

   
 
 автор: kasmanaft   (09.11.2007 в 13:06)   письмо автору
 
   для: sim5   (09.11.2007 в 12:48)
 

Потому и не видно :))

PS он полупрозрачный... Может быть прозрачность 1%, а цвета уже другие...
Если присмотреться, через правое ухо можно куст разглядеть.

   
 
 автор: sim5   (09.11.2007 в 13:22)   письмо автору
 
   для: kasmanaft   (09.11.2007 в 13:06)
 

Отметьте пожалуйста красным это место - не вижу :))

   
 
 автор: Indemion   (09.11.2007 в 13:38)   письмо автору
 
   для: sim5   (09.11.2007 в 13:22)
 

Спасибо. Код изучаю - может придет идея.

Вообще не верится, что люди создали абсолютную защиту для магазина. Я потихоньку пролезал сквозь эти дебри и вот в конце такая штука. Буду думать. Ведь уже написал много других программ: паук-собиратель линков для поиска квестов, квестосборщик, рыболов, обходчик ежедневных событий, автопокупка в частных магазинах и т.п. А вот тут такой косяк :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования