使用PIL检测图像中的黄色

时间:2014-01-21 18:22:23

标签: python python-imaging-library

我使用相机拍摄了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

不幸的是,没有坐标出现。

1 个答案:

答案 0 :(得分:1)

两个问题:

  • 根据图片格式,颜色可能位于0.01.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