Найти - Пользователи
Полная версия: Как узнать цвет пикселя под курсором?
Начало » Python для новичков » Как узнать цвет пикселя под курсором?
1 2
hronorog
Привет.

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

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

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

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

Если привести аналогию, то какой-нить бот для фермы вконтакте, который ищет красные помидорки, чтобы кликнуть на них и собрать, подождать, пока серая земля станет зеленой, потом снова красной и опять кликнуть. Мне же недоступны внутренние процессы игры.
ZerG
а если не знаю, какой цвет?
ТОгда вам надо не в программисты а в менеджеры
hronorog
Хороший ответ от человека с четырьмя сотнями сообщений в разделе для новичков в теме с вопросом.
Попробую перефразировать вопрос, чтобы он стал более понятен для опытного формучанина:

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

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

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

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

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

неужели на питоне все настолько плохо, что нужно указывать свой возраст, чтобы получить ответ?
Shaman
Цвет пикселя можно получить, например, при помощи PIL.ImageGrab.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB