Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2016 15:49:03

hronorog
Зарегистрирован: 2013-04-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

Привет.

Есть скрипт, который рандомно показывает на экране круг, залитый одним из трех цветов, красным, зеленым или черным. Человек (ребенок) должен мышкой нажать на кружочек того же цвета. У него внизу экрана три круга с этими цветами. Такая нехитрая забава для малышей.

Как узнать, какой цвет выпал? Чтобы понять, что скрипт работает нормально, использую Sikuli для симуляции действий пользователя.
Почему-то сикули путает цвета даже при требовании 95% совпадения. Если сгенерировать в ряд два десятка кругов с этими цветами и попросить сикули найти только красные, то в результат попадают и некоторые черные.

Хотел бы получить цвет без алгоритмов сикули, только за счет питона.

Офлайн

#2 Апрель 8, 2016 15:55:52

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

ЭЭЭ чисто вапрос…
А зачем так??????
Вы же знаете цвет какой выпал!!! круг одноцветный!
Ну так если Зеленый то надо кликнуть на квадратик с таким же значением!!! )_о



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Апрель 8, 2016 16:29:12

hronorog
Зарегистрирован: 2013-04-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

а если не знаю, какой цвет?

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

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

Офлайн

#4 Апрель 9, 2016 13:05:18

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

а если не знаю, какой цвет?
ТОгда вам надо не в программисты а в менеджеры



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Апрель 9, 2016 14:25:44

hronorog
Зарегистрирован: 2013-04-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

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

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

Как мне узнать цвет пикселя?

Офлайн

#6 Апрель 9, 2016 16:17:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

hronorog
Как мне узнать цвет пикселя?
Цвет пикселя определяется форматом картинки. Картинка сама по себе - это абстракция, в компьютерном мире она представлена некими данными в некоем формате типа jpeg, png, bmp и множеством других. Вам нужно знать формат файла и уметь его читать, тогда вы извлечете любую нужную информацию.
Насчет всего остального, вы исповедуете какой-то слишком ламерский подход, вы пытаетесь работать с ВЫВОДОМ программы, а не с реальными данными? которыми она оперирует и которые вам доступны. Это неверно, если вы хотите как-то проанализировать веселую ферму, то работать вы должны с траффиком клиент-серверного взаимодействия, а никак не с пикселями на экране.



Офлайн

#7 Апрель 9, 2016 17:31:21

hronorog
Зарегистрирован: 2013-04-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

да не нужна мне эта веселая ферма, привел в качестве примера.

то есть, мне нужно снимать скриншот видимой области и передавать его на обработку скрипту, в реальном времени цвет не узнать?

Офлайн

#8 Апрель 9, 2016 17:34:41

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

hronorog
Откуда у вас взялась картина на видимой области?
ПС: если не секрет, сколько вам лет?



Офлайн

#9 Апрель 9, 2016 20:52:21

hronorog
Зарегистрирован: 2013-04-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

Потому что сикули (http://www.sikulix.com/) имитирует поведение человека, который видит перед собой экран (видимую область). К сожалению, даже в последней бета-сборке она продолжает путать красные и черные цвета, не говоря уже о стабильной ветке.

код на яве довольно короткий

java_import java.awt.Color
color = Location(x,y).getColor() # color is of type java.awt.Color

неужели на питоне все настолько плохо, что нужно указывать свой возраст, чтобы получить ответ?

Отредактировано hronorog (Апрель 9, 2016 21:08:55)

Офлайн

#10 Апрель 9, 2016 21:17:06

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Как узнать цвет пикселя под курсором?

Цвет пикселя можно получить, например, при помощи PIL.ImageGrab.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version