Получение RGB цвета определённого пикселя на экране
Поиск определенного пикселя на экране
Здравствуйте. Я хочу найти определённый пиксель на экране. Я опробовал способ через opencv.
Поиск определенного пикселя на экране
Всем привет. Пишу игрового бота. Дано: Есть часть экрана размером в 1080х871 Нужно: Найти в этой.
получение координат пикселя определённого цвета
Не так давно начал изучать c++, перебрал множество вариантов. не как не могу быстро найти.
Получение значений RGB из пикселя
Имеется SDL_Surface в который я загрузил картинку, нужно получить значения RGB для каждого.
![]()
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,102
Записей в блоге: 6
Если на винде — то через winapi. Чистый питон ничего не знает про экран.
![]()
1354 / 651 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
Макс Орлов, Направение дать могу
1 2 3 4 5
from PIL import Image im = Image.open('1.jpg', 'r') width, height = im.size pixel_values = list(im.getdata()) print(pixel_values)
![]()
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,102
Записей в блоге: 6
Вот кстати да, хорошо бы указать, где пиксель. Я подумал, на экране, но может и про файл речь идёт.
Просто Лис
![]()
5318 / 3332 / 1021
Регистрация: 17.05.2012
Сообщений: 9,765
Записей в блоге: 9
1 2 3 4
from matplotlib.image import imread img = imread('abc.tiff') print(type(img))
1 2 3
import cv2 im = cv2.imread("abc.tiff",mode='RGB') print type(im)
Регистрация: 29.12.2018
Сообщений: 14
никто не ответил про самый простой способ. Держите кому надо
1 2 3 4 5 6 7 8
>>> import pyautogui >>> pix = pyautogui.pixel(100, 200) >>> pix RGB(red=130, green=135, blue=144) >>> pix[0] 130 >>> pix.red 130
Искусственный интеллект
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
Макс Орлов, Этот способ не самый быстрый. Быстрее будет так как то
1 2 3 4 5 6 7 8 9 10
import win32gui def pixel_color_at(x, y): hdc = win32gui.GetWindowDC(win32gui.GetDesktopWindow()) c = int(win32gui.GetPixel(hdc, x, y)) # (r, g, b) return (c & 0xff), ((c >> 8) & 0xff), ((c >> 16) & 0xff) print(pixel_color_at(10, 10)) print(pixel_color_at(*win32gui.GetCursorPos()))
Ну а на C++ так ваще 1млн раз в секнду)
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Определение цвета пикселя под курсором и контроль RGB ленты на Arduino
Доброго времени суток уважаемые форумчане! Как получить цвет пикселя под курсором на экране при.
Цвет определенного пикселя на экране
Как сделать процедуру с помощью которой в текстовом редакторе отображался цвет(в формате.

Определение цвета пикселя на экране
Добрый вечер, нужна помощь! Пишу программу, которая при определенном цвете пикселя выполняет клик.
Определение цвета пикселя на экране
Ребят, сразу прошу не счесть за тупость. Я гуглил! Представим, у меня есть на экране область, цвет.
Узнать цвет определенного пикселя на экране
Привет всем:) столкнулся с проблемой, а проблема состоит в том, что я хочу узнать цвет.
Поиск координат пикселя определенного цвета
Здравствуйте, уважаемые участники форума! Я только начинаю программировать на С++ Builder. У меня.

Быстрый поиск цвета пикселя на экране монитора
Подскажите как можно реализовать быстрый поиск определеного пикселя на экране. Накидал.
Получение и изменение цвета пикселя в изображении. Библиотека PIL Python
8 августа 2013 г.
Archy
Просмотров: 58894
RSS
Обсудить
Работа с изображениями » Python для начинающих
изменить пиксель python, сменить формат изображения python, сохранения изображения python

В прошлой статье мы узнали как установить библиотеку PIL в Python и начать уже с ней работать. В этой статье мы продолжаем изучение библиотеки PIL. Начиная с версией 1.1.6 метод load() возвращает объект, с помощью которого можно получить доступ к отдельным пикселям изображения. Указав два значения внутри квадратных скобок, можно получить или задать цвет пикселя.
>>> img = Image.open("foto.jpg") >>> obj = img.load() >>> obj[25, 45] # Получаем цвет пикселя (122, 86, 62) >>> obj[25, 45] = (255, 0, 0) # Задаем цвет пикселя (красный)
Для доступа к отдельному пикселю вместо метода load() можно использовать методы getpixel() и putpixel(). Метод getpixel() позволяет получить цвет указанного пикселя, а метод putpixel(, ) изменяет цвет пикселя. Координаты пикселя указываются в виде кортежа из двух элементов. Необходимо заметить, что эти методы работают медленнее метода load(). Пример использования метода getpixel() и putpixel() приведен ниже.
Использование метода getpixel() и putpixel()
>>> img = Image.open("foto.jpg") >>> img.getpixel((25, 45)) # Получаем цвет пикселя (122, 86, 62) >>> img.putpixel((25, 45), (255, 0, 0)) # Изменяем цвет пикселя >>> img.getpixel((25, 45)) # Получаем цвет пикселя (255, 0, 0) >>> img.show() # Просматриваем изображение
В этом примере для просмотра изображения мы воспользовались методом show(). Метод show() создает временный файл в формате BMP и запускает программу для просмотра изображения, используемую в операционной системе по умолчанию. Например, на моем компьютере запускается программа ACDSee. Для сохранения изображения в файл предназначен метод save().
В первом параметре указывается абсолютный или относительный путь. Вместо пути можно передать файловый объект, открытый в бинарном режиме. Сохраним изображение в форматах JPEG и BMP разными способами.
Сохраняем изображение в Python
>>> img.save("tmp.jpg") # В формате JPEG >>> img.save("tmp.bmp", "BMP") # В формате BMP >>> f = open("tmp2.bmp", "wb") >>> img.save(f, "BMP") # Передаем файловый объект >>> f.close()
Обратите внимание на то, что мы открыли файл в формате JPEG, а сохранили его в формате BMP. Таким образом, можно открывать изображения в одном формате и конвертировать его в другой формат. Если сохранить изображение не удалось, возбуждается исключение IOError. Если параметр не указан, то формат изображения определяется по расширению файла.
В параметре можно указать дополнительный характеристики изображения. Поддерживаемый опции зависят от формата изображения. Например, по умолчанию изображения в формате JPEG сохраняются с качеством 75. С помощью опции quality можно указать другое значение в диапазоне от 1 до 100.
>>> img.save("tmp3.jpg", "JPEG", quality=100) # Указание качества
За дополнительной информации по опциям обращайтесь к документации. Так же для более подробной инструкции игры в покер можете прочитать poker правила и повысить свои навыки в этой игре. Удивите своих знакомых во время игры в покер, продемонстрировав им свой профессионализм игры.
Еще записи по теме
- Как импортировать словарь в Lingualeo при помощи Python?
- Множественное наследование в Python
- Как выбрать хостинг для сайта без какого-либо риска?
- Копирование файлов в Python
- Форматирование Python-кода
- Модуль threading на примерах
- Перебор элементов словаря dict() в Python
Python-сообщество
![]()
- Начало
- » Python для новичков
- » Как узнать цвет пикселя под курсором?
#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 Сообщения: 2330 Репутация: 63 Профиль Отправить 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 Сообщения: 2330 Репутация: 63 Профиль Отправить 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)
Быстро узнать цвет пикселя на экране, Python
Мне нужно быстро узнавать цвет пикселя на экране и реагировать на его изменение. Я работаю на Linux, Fedora. Как это можно сделать быстро на Python? Я пробовал использовать pyautogui.pixelMatchesColor() но 5-7 проверок в секунду для меня слишком медленно. Как можно это реализовать так, чтобы скорость обработки была выше? Заранее спасибо.
Отслеживать
Positron NN
задан 20 мар 2020 в 18:16
Positron NN Positron NN
145 1 1 серебряный знак 9 9 бронзовых знаков
Если делать «быстро и тупо», я бы взял ffmpeg с x11grab и читал бы пиксели из его stdout
20 мар 2020 в 18:40
Наверное, я немножко опоздал, но библиотека mss позволяет захватить часть экрана и вроде бы довольно быстрая (на моём линуксе где-то до 7000 захватов в секунду получается)
16 апр 2020 в 20:19
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
- python
- python-3.x
- linux
- обработка-изображений