gpt4 book ai didi

python - 在使用 ImageGrab 检索到的较大图像中检测较小的图像 (.png)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:11 24 4
gpt4 key购买 nike

我花了一个小时研究这个简单的主题,但我遇到的所有答案都非常复杂,作为 Python 新手,我无法将它们中的任何一个合并到我的程序中。

我正在尝试让人工智能玩浏览器版本的钢琴 block 游戏。截至目前,我只是 try catch 游戏窗口(计算机屏幕的一小部分),然后使用游戏开始按钮的 .png 检查该游戏窗口。从那里我将继续单击该开始按钮,但这是另一个问题。

如何检查图像是否包含 .png 文件?

这是我当前的代码:

from PIL import ImageGrab as ig, ImageOps as io, Image
import pyautogui
import bbox

def grabStart(window):
#The start button
start = Image.open("res/StartButton.PNG")
start = io.grayscale(start)

#This is the part I need to figure out. The following is just pseudocode
if window.contains(start): #I know that this doesn't actually work. Just pseudocode
#I'd like to return the location of 'start' in one of the following forms
return either: (x1, y1, x2, y2), (x1, y1, width, height), (a coordinate within 'start'))

def grabGame():
#The coordinates of the entire game window
x1 = 2222
y1 = 320
x2 = 2850
y2 = 1105

#The entire screen of the game
window = ig.grab(bbox = (x1, y1, x2, y2))
window = io.grayscale(window)

return window

grabStart(grabGame())

最佳答案

尝试使用pyautogui.locate()。函数输入两个参数,第一个是需要找到的图像,第二个是需要找到较小图像的图像。此方法仅适用于图像,因此如果您想在实时窗口中运行此方法,您可以考虑其他选择。其次,pyautogui 只是 PIL 的包装器,因此如果您遇到效率问题,您可能需要将 locate() 转换为它的 PIL 等效项性能。

关于python - 在使用 ImageGrab 检索到的较大图像中检测较小的图像 (.png)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56318864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com