查找RGB值

时间:2014-10-24 19:09:00

标签: python myro

我想编写一个打印出图片颜色值RGB的函数。图片的颜色均为redgreenyellow或白色。

我所拥有的是以下内容:

def findColor():
    pic=takePicture()
    red = 0   
    green = 0
    blue = 0 
    size = getWidth(pic)*getHeight(pic)
    for pix in getPixels(pic):
        r = getRed(pix)
        g = getGreen(pix)
        b = getBlue(pix)
        red = red + r
        green = green + g
        blue = blue + b 
    print(red//size,green//size,blue//size)

或者给我类似上述值的代码:

def findColor():
    pic=takePicture()
    for pix in getPixels(pic):
        r = getRed(pix)
        g = getGreen(pix)
        b = getBlue(pix)
    print(r,g,b)   

这些代码是获取RGB值的正确方法吗?如果图片包含不同的颜色,我相信第二个代码不准确。

2 个答案:

答案 0 :(得分:1)

如果您只想打印每个像素的rgb值,则在修复缩进时,第二个代码块将起作用。

def findColor():
    pic=takePicture()
    for pix in getPixels(pic):
        r = getRed(pix)
        g = getGreen(pix)
        b = getBlue(pix)
        print(r,g,b) 

答案 1 :(得分:0)

原帖很多都迟到了。

如果pic是具有类似(R,C,3) R->的形状的ndarray。行/高度,C - >列/宽度和3个通道(RGB)

这篇文章Python numpy array with multiple conditions to iterate over image是您可能正在搜索的one line solution

Red,Green,Blue = img[...,0],img[...,1],img[...,2]