скриншот Python для выбора конкретного изображения на карте изображения HTML5 - PullRequest
0 голосов
/ 19 октября 2011

На html5-странице, использующей карту изображений , я хотел бы использовать python (или Perl, Ruby, C), чтобы сканировать его, чтобы найти определенное изображение (те, которые разделены областью прозрачности) в другом один и щелкните по нему, когда это изображение будет найдено. Изображение всегда одинаковое. Каков наилучший способ достичь этого?

Редактировать : для французских читателей трюк реализован, см. http://www.sputnick -area.net /? P = 572

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Sikuli может быть идеальным для этого. Он основан на Jython, поэтому может быть расширен с помощью инструментов Python или Java.

Sikuli - это визуальная технология для автоматизации и тестирования графического пользователя. интерфейсы (GUI) с использованием изображений (скриншоты). Sikuli включает в себя Sikuli Script, API визуальных сценариев для Jython и Sikuli IDE, интегрированная среда разработки для написания визуальных сценариев с скриншоты легко.

Редактировать

Если изображение хорошо определено, как в вашем примере, его можно легко сопоставить без особой обработки изображения. Здесь я использовал matplotlib (маленькое изображение должно быть точно обрезанной версией большого изображения).

Целевое изображение (65x173):

enter image description here

Изображение для сопоставления (29x29):

enter image description here

In [48]: import matplotlib.pyplot as pl

In [49]: target = pl.imread("r.png")

In [50]: match = pl.imread("xx.png")

In [51]: target.shape
Out[51]: (65, 173, 4)

In [52]: match.shape
Out[52]: (29, 29, 4)

In [53]: for y in range(2):
   ....:     for x in range(5):
   ....:         sub_x = 36*x
   ....:         sub_y = 36*y
   ....:         sub_target = target[sub_y:sub_y+29,sub_x:sub_x+29,:]
   ....:         if (match == sub_target).all():
   ....:             print "Match found between (%d,%d) and (%d,%d)" % (sub_x,sub_y,sub_x+29,sub_y+29)
   ....:
Match found between (72,0) and (101,29)
0 голосов
/ 03 ноября 2011

Я так понимаю, изображения всегда одинаковы, поэтому 6 находится с одинаковым смещением и покрывается одним и тем же тегом. Нажатие на изображение в этот момент будет следовать URL-адресу, указанному в атрибуте href. Так что перейдите по этой ссылке.

...