我想编写一个打印出图片颜色值RGB的函数。图片的颜色均为red,green,yellow或白色。
我所拥有的是以下内容:
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值的正确方法吗?如果图片包含不同的颜色,我相信第二个代码不准确。
答案 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]