【发布时间】:2020-06-26 09:47:23
【问题描述】:
我正在尝试为diep 制作一个瞄准机器人。我正在尝试定位屏幕上的所有敌人,但以 1 的置信度返回 None 并以 0.9999 的置信度返回屏幕上的每个位置。
我正在使用 PyCharm,当我运行代码时,它会返回屏幕上的每个位置,即使没有任何红色。然后,当我将置信度设置为 1 时,它甚至不会返回红色的位置。
我什至尝试打开文件并查看它是否可以找到颜色。没用,结果一样。
我的代码
# https://pyautogui.readthedocs.io/en/latest/screenshot.html
from pyautogui import locateAllOnScreen, moveTo
while True:
"""
try:
coords = list(locateAllOnScreen('enemycolordiep.png'))
except 'ImageNotFoundException':
coords = []
"""
coords = locateAllOnScreen('enemycolordiep.png', confidence=X)
if coords is None:
coords = []
else:
coords = list(coords)
print(coords)
for coord in coords:
centerCoord = (coord[0] + (coord[2] / 2), coord[1] + (coord[3] / 2))
print(centerCoord)
# moveTo(centerCoord[0], centerCoord[1], duration=0)
我希望在屏幕上显示红色位置,但这不起作用。我有pyautogui、pyobjc-core、pyobjc-framework-quartz、Pillow、opencv-python,以及这些软件包所依赖的其他一些东西。我正在使用 MacOS Mojave。感谢您的帮助!
【问题讨论】:
-
使用枕头:查看我的回答 here 以了解您如何测试特定像素的颜色值。顺便说一句..更新您的问题以包括您使用的枕头代码。可以在您的问题中发布为第二个脚本,称为“替代”或其他内容。
-
RGB 颜色匹配对图像定位有何帮助?
-
...您说“红色的位置”或多或少是敌人。在《魔兽世界》中,它是一个黄色的圆形盾牌,因此请在屏幕输出中扫描这些形状,或使用 X 轴直方图得分,以 Y 作为强度。如果敌人可用的位置像素是红色 = 255,如果不是像素红色 = 0。瞧……你让你的敌人与平民分开。对于特定的圆形、矩形或正方形检测,请尝试使用 openCV (cv2),在所有其他情况下,具有小区域 (y1,y2;x1,x2) 的直方图将起作用。
-
但是 PyAutoGUI 不是在后台使用 OpenCV 吗?我安装了它和枕头
标签: python python-3.x pyautogui