所以,我有这个脚本可以正常工作,它可以打印出所有像素,并且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)
答案 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):
...