获取RGB值opencv python

Ror*_*ter 8 python opencv computer-vision

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

image = cv2.imread("new_image.jpg")
Run Code Online (Sandbox Code Playgroud)

我如何处理RGB值image

Yam*_*eko 10

你可以做

image[y, x, c]
Run Code Online (Sandbox Code Playgroud)

或者等价的image[y][x][c].

它将返回x,y,c坐标中像素的值.请注意索引开始于0.所以,如果你要访问的第三BGR(注意:不是RGB)组件,你必须做的image[y, x, 2]地方yx有需要的行和列.

此外,您可以通过键入获取Python中可用于给定对象的方法dir(<variable>).例如,在加载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()

  • 请注意,imread以BGR格式返回图像. (7认同)
  • `image [x,y,z]`也有效,因为这只是一个numpy数组. (2认同)

Roh*_*nke 7

使用opencv在Python中获取像素的BGR颜色值

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
Run Code Online (Sandbox Code Playgroud)

输出: [73 89 102]

  • 现在返回“TypeError:只有 size-1 数组可以转换为 Python 标量” (6认同)

小智 5

此代码将打印像素 300、300 的 red 、 green 和 blue 值:

img1 = cv2.imread('Image.png', cv2.IMREAD_UNCHANGED)
b,g,r = (img1[300, 300])
print (r)
print (g)
print (b)
Run Code Online (Sandbox Code Playgroud)