[英]How do you detect the rgb value of some pixels from a png, in python?
My code takes a screenshot, (should) test if any of the pixels in the screenshot are a general rgb value (in my example they are in the range of: r_min, r_max and g_min, g_max. Also, the end_time is there to make sure that there is enough time to scan all the pixels, since it will then screenshot another photo, and check for the pixels in the other one, until it finds the specific pixels, after that, it changes the value of variable (fish_found) from 0 to 1, and gets through the if statement.我的代码截取了屏幕截图,(应该)测试屏幕截图中的任何像素是否是通用 rgb 值(在我的示例中,它们的范围为:r_min、r_max 和 g_min、g_max。此外,还有 end_time确保有足够的时间扫描所有像素,因为它会截取另一张照片,并检查另一张照片中的像素,直到找到特定像素,然后将变量 (fish_found) 的值从0 到 1,并通过 if 语句。
This is the code that I came up with:这是我想出的代码:
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")
Okay, update for anyone needing it: the whole code was a mess, and I found a better way to find out if the pixels match:好的,为任何需要它的人更新:整个代码一团糟,我找到了一种更好的方法来确定像素是否匹配:
def function():
pic = screenshot('screen.png', region=(985, 420, 30, 30))
width, height = pic.size
for x in range(0, width, 2):
#modify the last digit to take greater steps, if you don't want to check every
#pixel
for y in range(0, height, 2):
#same thing, change the 2 to any value you want
r, g, b = pic.getpixel((x, y))
#this gets the actual rgb value of the pixel
if r in range(250, 256) and g in range(195, 215) and b in range(28, 38):
#put the range of values of r g b up here ^
#down here you place your code (after you find out if they match, what do
#you do should be right here.
#after all of that, just call your function when you want to.
function()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.