获取RGB值opencv python

时间:2012-08-29 22:24:47

标签: python opencv computer-vision

我正在将图像加载到python中,例如

image = cv2.imread("new_image.jpg")

如何处理image的RGB值?

6 个答案:

答案 0 :(得分:7)

你可以做到

image[y, x, c]

或等效image[y][x][c]

它将返回x,y,c坐标中像素的值。请注意,索引从0开始。因此,如果要访问第三个BGR(注意:不是RGB)组件,则必须执行image[y, x, 2],其中yx是所需的行和列。

此外,您可以通过键入dir(<variable>)来获取Python中可用于给定对象的方法。例如,在加载image之后,运行dir(image),您将获得一些有用的命令:

'cumprod', 'cumsum', 'data', 'diagonal', 'dot', 'dtype', 'dump', 'dumps', 'fill',
'flags', 'flat', 'flatten', 'getfield', 'imag', 'item', 'itemset', 'itemsize', 
'max', 'mean', 'min', ...

用法:image.mean()

答案 1 :(得分:5)

使用opencv

获取Python中像素的B G R颜色值
import cv2
image = cv2.imread("sample.jpg")
color = int(image[300, 300])
# if image type is b g r, then b g r value will be displayed.
# if image is gray then color intensity will be displayed.
print color

<强>输出: [73 89 102]

答案 2 :(得分:1)

此代码将打印像素300、300的红色,绿色和蓝色值:

img1 = cv2.imread('Image.png', cv2.IMREAD_UNCHANGED)
b,g,r = (img1[300, 300])
print (r)
print (g)
print (b)

答案 3 :(得分:0)

对我来说效果很好:

import cv2 
import numpy as np  

cap = cv2.imread('/home/PATH/TO/IMAGE/IMG_0835.jpg')
#You're free to do a resize or not, just for the example
cap = cv2.resize(cap, (340,480))
for x in range (0,340,1):
    for y in range(0,480,1):
        color = cap[y,x]
        print color`

答案 4 :(得分:0)

我认为获取图像 RGB 的最简单方法是使用 cv2.imshow("windowName",image)。 图像会带窗口显示,小信息栏还会显示图像下方的坐标(x,y)和RGB。喜欢this picture。您可以使用鼠标查看您想要的任何像素的 RGB。

代码示例:

import cv2

image = cv2.imread("new_image.jpg")
try:
    cv2.imshow("windowName",image)
    cv2.waitKey(0)
except:
    print("No this image")

答案 5 :(得分:-1)

您可以使用numpy 更好地将图像转换为numpy数组并转置矩阵 [R G B]将为[B G R],反之亦然