如何从image.pixel中找到像素位置?

时间:2019-02-21 22:44:35

标签: python python-3.x image screenshot python-mss

所以,我有这个脚本可以正常工作,它可以打印出所有像素,并且rgb值为(102,102,102),但是我不知道现在如何获得该像素的位置并单击它。建议?

编辑:按像素位置,我的意思是像素x,y坐标

import pyautogui
import time
from PIL import Image
import mss
import mss.tools
import cv2
import numpy as np
from PIL import ImageGrab
import colorsys


time.sleep(3)


def shootfunc(xc, yc):
    pyautogui.click(xc, yc)

gameregion = [71, 378, 328, 530]

foundpxl = 0

xx = 0
while xx <= 300:
    with mss.mss() as sct:
        region = {'top': 0, 'left': 0, 'width': 1920, 'height': 1080}
        imgg = sct.grab(region)
        pxls = imgg.pixels


        for pxl in pxls:
            for pxll in pxl:
                if pxll == (102, 102, 102) or pxl == "(255, 255, 255)" or pxl == [255, 255, 255]:
                    foundpxl = pxll
                    print(foundpxl)
        xx = xx + 1
        time.sleep(.1)

1 个答案:

答案 0 :(得分:1)

您可以enumerate遍历任何序列。这将返回元素和元素的索引:

>>> for i, e in enumerate('abc'):
...     print(i, e)
0 a
1 b
2 c

因此,您可以利用它来查找像素的行和列:

for row, pxl in enumerate(pxls):
    for col, pxll in enumerate(pxl):
        ...