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

时间 2019-02-22
阅读 72
点赞 0
收藏 0
连接jake-sanford

所以,我有一个脚本,它可以工作,它打印出所有的像素和rgb值(102102102),但我不知道我现在如何能够得到像素的位置并点击它。有什么建议吗?

编辑:按像素位置,我是指像素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)
建议答案

你可以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):
        ...
👍 0