Форум сайта python.su
0
Привет.
Есть скрипт, который рандомно показывает на экране круг, залитый одним из трех цветов, красным, зеленым или черным. Человек (ребенок) должен мышкой нажать на кружочек того же цвета. У него внизу экрана три круга с этими цветами. Такая нехитрая забава для малышей.
Как узнать, какой цвет выпал? Чтобы понять, что скрипт работает нормально, использую Sikuli для симуляции действий пользователя.
Почему-то сикули путает цвета даже при требовании 95% совпадения. Если сгенерировать в ряд два десятка кругов с этими цветами и попросить сикули найти только красные, то в результат попадают и некоторые черные.
Хотел бы получить цвет без алгоритмов сикули, только за счет питона.
Офлайн
61
ЭЭЭ чисто вапрос…
А зачем так??????
Вы же знаете цвет какой выпал!!! круг одноцветный!
Ну так если Зеленый то надо кликнуть на квадратик с таким же значением!!! )_о
Офлайн
0
а если не знаю, какой цвет?
сикули позволяет симулировать юзверя, я хочу убедиться, что ребенок видит, распознает и нажимает верные цвета. То есть цветовая палитра отображается верно.
Программно вывел красный цвет, программно считал его, сравнил. Скриптовая магия под капотом и может быть не видна.
Если привести аналогию, то какой-нить бот для фермы вконтакте, который ищет красные помидорки, чтобы кликнуть на них и собрать, подождать, пока серая земля станет зеленой, потом снова красной и опять кликнуть. Мне же недоступны внутренние процессы игры.
Офлайн
61
а если не знаю, какой цвет?ТОгда вам надо не в программисты а в менеджеры
Офлайн
0
Хороший ответ от человека с четырьмя сотнями сообщений в разделе для новичков в теме с вопросом.
Попробую перефразировать вопрос, чтобы он стал более понятен для опытного формучанина:
Я открыл картинку, которая разлинована вертикальными и горизонтальными полосами, что-то вроде шахматной доски, некоторые из получившихся квадратов залиты белым цветом, некоторые черным. Надо посчитать количество черных квадратов. Как вариант решения я вижу такой способ:
взять первую горизонтальную линию шириной в один пиксель, пройтись по всей длине, проверить каждый пиксель и узнать границы квадратов. Так же сделать по вертикали, а уже потом посчитать полученные квадраты.
Как мне узнать цвет пикселя?
Офлайн
568
hronorogЦвет пикселя определяется форматом картинки. Картинка сама по себе - это абстракция, в компьютерном мире она представлена некими данными в некоем формате типа jpeg, png, bmp и множеством других. Вам нужно знать формат файла и уметь его читать, тогда вы извлечете любую нужную информацию.
Как мне узнать цвет пикселя?
Офлайн
0
да не нужна мне эта веселая ферма, привел в качестве примера.
то есть, мне нужно снимать скриншот видимой области и передавать его на обработку скрипту, в реальном времени цвет не узнать?
Офлайн
568
hronorog
Откуда у вас взялась картина на видимой области?
ПС: если не секрет, сколько вам лет?
Офлайн
0
Потому что сикули (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)
Офлайн
88
Цвет пикселя можно получить, например, при помощи PIL.ImageGrab.
Офлайн