Нахождение значений RGB
Я хочу написать функцию, которая печатает значения цвета, RGB, изображения. Фотографии либо окрашены в красный, зеленый, желтый или белый цвет.
У меня есть следующее:
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 ответа
Если вы просто хотите напечатать значение rgb для каждого отдельного пикселя, ваш второй кодовый блок будет работать, если вы исправите отступ.
def findColor():
pic=takePicture()
for pix in getPixels(pic):
r = getRed(pix)
g = getGreen(pix)
b = getBlue(pix)
print(r,g,b)
Многие опаздывают на оригинальный пост.
В случае, если рис ndarray с формой, как (R,C,3)
R-> Rows/Height, C -> Columns/Width и 3 канала (RGB)
Эта статья Python NumPy массив с несколькими условиями для перебора по изображению является one line solution
вы можете искать
Red,Green,Blue = img[...,0],img[...,1],img[...,2]