Python 函数 LocateOnScreen 检测屏幕上的数字,从 0 到 9

问题描述 投票:0回答:0

[屏幕上的数字][1][屏幕上的数字][2]我想使用 python 函数“LocateOnScreen”来检测屏幕上的数字。我想知道我是否可以在逻辑运算符或条件运算符中使用它。我希望它检测特定数字是否出现在屏幕上的指定区域,从 0 到 9 为第一个数字。如果是,则返回 true,缩小指定区域,并检测第二个数字。如果找不到,则返回 false。

import pyautogui
import pyscreeze
import cv2
pyautogui.click(400, 750,duration=0.4)
pyautogui.sleep(2)
pyautogui.useImageNotFoundException()

Xregion=(660,669,200,30)
try:

    Xcoordinate=pyautogui.locateOnScreen("x.png", confidence=0.98, 
region=Xregion)

    print(Xcoordinate)
    print(Xcoordinate[0]+Xcoordinate[2])
    Lregion=(Xcoordinate[0]+Xcoordinate[2], Xregion[2], Xcoordinate[2]*3, Xregion[3])

    Lcoordinate=pyautogui.locateOnScreen("Lbracket.png", confidence=0.98, region=Lregion)
    print(Xregion)
    print("Lre=",Lregion)
    print("Lcoor=",Lcoordinate)
    region0=(Lcoordinate[0]+Lcoordinate[2], Xregion[2], Xcoordinate[2], Xregion[3])
    try:
        coordinate0=pyautogui.locateOnScreen("0.png", confidence=0.98, region=region0)
        print(region0)
        print(coordinate0)
        Rregion=(coordinate0[0]+coordinate0[2], Xregion[2], coordinate0[2], Xregion[3])
        Rcoordinate=pyautogui.locateOnScreen("Rbracket.png", confidence=0.98, region=Rregion)
        print(Rcoordinate)
        print("0")
    except:
        try:
            coordinate1=pyautogui.locateOnScreen("1.png", confidence=0.98, region=region0)
            print(coordinate1)
        except:
            print("no1")
            print(region0)
except:
    print("NoX")

我的问题涉及2个问题,第1位,找不到0怎么办?第二,如何通过将第一个找到的数字的坐标编号添加到现有区域来缩小区域范围。

谢谢你的帮助。

到目前为止,程序返回以下内容:

    Box(left=692, top=671, width=12, height=15)
    704
    (660, 669, 200, 30)
    Lre= (704, 669, 36, 30)
    Lcoor= Box(left=720, top=671, width=10, height=19)
    no1
    (730, 669, 12, 30)
    PS C:\Users\User\Desktop\Python>


  [1]: https://i.stack.imgur.com/MOTdN.png
  [2]: https://i.stack.imgur.com/uVClZ.png
python pyautogui
© www.soinside.com 2019 - 2024. All rights reserved.