Python получить цвет пикселя на экране

Поиск определенного пикселя на экране

Всем привет. Пишу игрового бота.
Дано: Есть часть экрана размером в 1080х871
Нужно: Найти в этой части экрана пиксель с RGB цветом 231 232 99 и вернуть его координаты(х, у). Возможно таких частей будет 2-3.

Буду благодарен за помощь.

Поиск определенного пикселя на экране
Здравствуйте. Я хочу найти определённый пиксель на экране. Я опробовал способ через opencv.

Получение RGB цвета определённого пикселя на экране
Необходимо получить RGB цвет пикселя который находится на кординатах x и y. Как это сделать?

Поиск определенного пикселя на экране, или в окне другой программы
Меня интересует какие библиотеки используются для этого, по читать бы и примерчиков б пару. Ну и.

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

Попробовал пропарсить циклом цвета пикселей на нужной мне части экрана. Так-то работает, но ждать минут 10-15 на парсинг большей части пикселей на экране.

Эксперт Python

На данный момент все до чего додумался мой не шибко опытный мозг, то это до 2-ух циклов фор

def pixels(x, y): hdc = win32gui.GetWindowDC(win32gui.GetDesktopWindow()) c = int(win32gui.GetPixel(hdc, x, y)) return array('i',[(c & 0xff), ((c >> 8) & 0xff), ((c >> 16) & 0xff)]) def OnTimeCheck(): for a in range(870): for b in range(1080): result = pixels(b, a); print(result);

Что нужно: представь себе кусок экрана. Размер этого куска 1080х870. Вся часть этого экрана белая, однако где-то на ней существуют черные точки(она может быть как одна, так и несколько). Необходимо: зная точный RGB цвет белых точек найти их точные координаты на экране. Желательно сделать так, что бы сам цикл проверок проходил за 10- секунд.

Эксперт Python

Dave_, OMG. Конечно будет тормозить!
Во-первых, вы в цикле получаете DC. Зачем? Его достаточно получить единожды.
Во-вторых, пиксель вы получаете у него, у контекста. Я не знаю, что там происходит внутри, с winapi плотно не работал, но наверняка внутри там тоже множество всего тормозного и для частых вызовов не предназначенного.

Картинку с этого контекста вам надо запихнуть в bitmap. И уже по нему пробегаться циклом.

Добавлено через 1 минуту
Dave_, да, в третьих.
В возвращаемом значении у вас очень много лишнего. Формируется список и питоновский массив. Избавьтесь от формирования лишних объектов.

Добавлено через 4 минуты
Да, теоретически возможно ещё ускорить, избавившись от питоновских циклов.

Но для этого надо содержимое картинки перевести в числовой массив в памяти, это надо разбираться, как.

Источник

Получение RGB цвета определённого пикселя на экране

Поиск определенного пикселя на экране
Здравствуйте. Я хочу найти определённый пиксель на экране. Я опробовал способ через opencv.

Поиск определенного пикселя на экране
Всем привет. Пишу игрового бота. Дано: Есть часть экрана размером в 1080х871 Нужно: Найти в этой.

Читайте также:  Ширина фона

получение координат пикселя определённого цвета
Не так давно начал изучать c++, перебрал множество вариантов. не как не могу быстро найти.

Получение значений RGB из пикселя
Имеется SDL_Surface в который я загрузил картинку, нужно получить значения RGB для каждого.

Эксперт Python

Эксперт Python

from PIL import Image im = Image.open('1.jpg', 'r') width, height = im.size pixel_values = list(im.getdata()) print(pixel_values)

Эксперт Python

Эксперт Python

from matplotlib.image import imread img = imread('abc.tiff') print(type(img))
import cv2 im = cv2.imread("abc.tiff",mode='RGB') print type(im)

никто не ответил про самый простой способ. Держите кому надо

>>> import pyautogui >>> pix = pyautogui.pixel(100, 200) >>> pix RGB(red=130, green=135, blue=144) >>> pix[0] 130 >>> pix.red 130
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()))

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

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

Определение цвета пикселя на экране
Добрый вечер, нужна помощь! Пишу программу, которая при определенном цвете пикселя выполняет клик.

Определение цвета пикселя на экране
Ребят, сразу прошу не счесть за тупость. Я гуглил! Представим, у меня есть на экране область, цвет.

Узнать цвет определенного пикселя на экране
Привет всем:) столкнулся с проблемой, а проблема состоит в том, что я хочу узнать цвет.

Поиск координат пикселя определенного цвета
Здравствуйте, уважаемые участники форума! Я только начинаю программировать на С++ Builder. У меня.

Быстрый поиск цвета пикселя на экране монитора
Подскажите как можно реализовать быстрый поиск определеного пикселя на экране. Накидал.

Источник

Получение и изменение цвета пикселя в изображении. Библиотека PIL Python

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

изменение цвета пикселя в изображении. Библиотека PIL 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().

Читайте также:  Cpp for class 12

В первом параметре указывается абсолютный или относительный путь. Вместо пути можно передать файловый объект, открытый в бинарном режиме. Сохраним изображение в форматах 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 правила и повысить свои навыки в этой игре. Удивите своих знакомых во время игры в покер, продемонстрировав им свой профессионализм игры.

Источник

Color Detection using Python – Beginner’s Reference

Featured Img Color Detection

In this tutorial, we will learn how to detect various colors in an image using Python and the OpenCV library. This beginner’s reference will cover the process of color detection, working with datasets, importing OpenCV, creating a window and callback function, extracting color names from RGB values, and displaying results on a window. By the end of this tutorial, you will have a basic understanding of color detection using Python and OpenCV

Introduction to Color Detection

The process of detecting the name of any color in an image is known as color detection. This is an exceedingly simple task for humans, but it is not that simple for computers. The eyes and brains of humans work together to convert light into color. The signal is transmitted to the brain via light receptors in our eyes. The color is then recognized by our brain.

In this Python color detection tutorial, we’ll create an application that allows you to get the name of color by simply clicking on it. As a result, we’ll need a data file with the color name and values. Then we’ll compute the distance between each color and choose the one with the smallest distance.

Understanding the Color Dataset

Red, green, and blue are the three primary colors that make up any color available. Each color value in a computer is defined as a number between 0 and 255. A color can be represented in around 16.5 million different ways. We need to translate the values of each color to their names using our dataset. We’ll be working with a dataset that contains RGB values along with their names.

Читайте также:  All java codes list

Importing OpenCV

The first step is to import all the required modules along with OpenCV, and then load the image but make sure the image is inside the same folder as the code file.

import cv2 import numpy as np import pandas as pd img = cv2.imread("sample.jpg")

Loading the Color Data from the colors.csv File

We make use of the pandas library to do operations on data files like CSV. And pd.read_csv() function is used to load and read the CSV file. We also assign each column with a name in the index list for making access easier.

index = ["color", "color_name", "hex", "R", "G", "B"] data = pd.read_csv("colors.csv", names=index, header=None)

Setting up the Interactive Window and Callback Function

First, we have to create a fresh window in which the input image will display. Then, we provide a callback function that will be activated only when a mouse event happens across the image.

cv2.namedWindow("Color Detection Window") cv2.setMouseCallback("Color Detection Window",call_back_function)

But now we have to create a callback function mentioned by the name of call_back_function .

Implementing the Callback Function

Let’s understand what this callback function will do: It will calculate the rgb values of the pixel which we double click and the (x,y) coordinates of the mouse position are saved.

def call_back_function (event, x,y,flags,param): if event == cv2.EVENT_LBUTTONDBLCLK: global b,g,r,xpos,ypos, clicked clicked = True xpos = x ypos = y b,g,r = img[y,x] b = int(b) g = int(g) r = int(r)

Converting RGB Values to Color Names

Now that we have extracted the rgb values from the image, now we need to change the rgb values to the color name. The same is done in the function below.

def get_Color_Name(R,G,B): minimum = 10000 for i in range(len(csv)): d = abs(R- int(csv.loc[i,"R"])) + abs(G- int(csv.loc[i,"G"]))+ abs(B- int(csv.loc[i,"B"])) if(d<=minimum): minimum = d cname = csv.loc[i,"color_name"] return cname

To get the color name, we calculate a distance(d) which tells us how close we are to a specific color and choose the one which results in the minimum distance. The distance is calculated using the following formula:

d = abs(Red — ithRedColor) + (Green — ithGreenColor) + (Blue — ithBlueColor)

Displaying Results in the Interactive Window

We make use of the cv2.imshow() function to draw the image on the window we created earlier. When the user double clicks on the window, a rectangle is drawn on the image which gets the color name on the window using cv2.rectangle and cv2.putText() functions respectively.

while(1): cv2.imshow("Color Detection Window",img) if (clicked): cv2.rectangle(img,(20,20), (750,60), (b,g,r), -1) text = getColorName(r,g,b)+'R='+str(r)+'G='+ str(g)+'B='+ str(b) cv2.putText(img, text,(50,50),2,0.8, (255,255,255),2,cv2.LINE_AA) if(r+g+b>=600): cv2.putText(img, text,(50,50),2,0.8,(0,0,0),2,cv2.LINE_AA) clicked=False if cv2.waitKey(20) & 0xFF ==27: break cv2.destroyAllWindows()

Sample Outputs

Color Detection Window OpencvDetected Red Color DetectionDetected Cyan Color Detection

Output on Another Image

Skin Color Detection Image2

Conclusion

I hope you now understand color detection in images using Python OpenCV. With the steps mentioned above, you will now be able to create an application that lets users identify colors by clicking on an image. We have also demonstrated the use of an RGB color value dataset for this case.

Did this tutorial inspire you to explore other applications of color detection in computer vision projects?

Источник

Оцените статью