【发布时间】:2021-08-02 17:07:57
【问题描述】:
我的代码截取屏幕截图,(应该)测试屏幕截图中的任何像素是否为通用 rgb 值(在我的示例中,它们的范围为:r_min、r_max 和 g_min、g_max。此外,end_time 为确保有足够的时间扫描所有像素,因为它会截取另一张照片,并检查另一张照片中的像素,直到找到特定像素,然后更改变量的值 ( fish_found) 从 0 到 1,并通过 if 语句。
这是我想出的代码:
fish_found = 0
im = screenshot('check.png')
def find_fish(image_name):
r_min = 140
r_max = 190
g_min = 85
g_max = 185
fish_found = 0
img = Image.open(image_name)
rgb = img.convert('RGB')
for x in range(img.size[0]):
for y in range(img.size[1]):
r, g, b = rgb.getpixel((x, y))
if r >= r_min and r <= r_max and g >= g_min and g <= g_max:
fish_found = fish_found + 1
while True:
im = screenshot('check.png', region=(990,415,20,20))
end_time = datetime.now() + timedelta(seconds=0.5)
while datetime.now() < end_time:
find_fish('check.png')
print(fish_found)
if fish_found > 0:
print("You found a fish")
【问题讨论】:
-
您的实际问题是什么?你得到预期的结果了吗?你有错误吗?您需要改进吗?如果需要,如何改进?请查看stackoverflow.com/help/on-topic 帮助部分以进一步阅读。另外,请提供完整的minimal reproducible example 以及您的问题,包括导入等。
标签: python python-3.x computer-vision python-imaging-library pyautogui