我使用相机拍摄了JPG图像,并希望检测图片中的黄色火柴盒。我试图使用Python Imaging Library。我试图找到黄色的RGB组合,事实证明,对于任何黄色阴影,R和G总是255。然而,在图像中,没有255的值。我做错了什么?我怎么解决这个问题?这是我尝试过的代码:
for x in range(1,2592):
for y in range(1,1456):
p = im.getpixel((x,y))
if p[0]>150 and p[1]>150:
print p
不幸的是,没有坐标出现。
答案 0 :(得分:1)
两个问题:
根据图片格式,颜色可能位于0.0
至1.0
空间内。
(150, 150, 255)
,虽然匹配您的测试不会被视为黄色。实际上它是蓝色的。你应该测试红色和绿色是否足够大,但是蓝色足够小。
把它们放在一起:
for x in range(1,2592):
for y in range(1,1456):
p=im.getpixel((x,y))
if p[0] > 150 and p[1] > 150 and p[2] < 150: # added p[2] < 150 for blue
print p, "is yellow"
else:
print p, "is not yellow" # see what range you have