我正在将图像加载到python中,例如
image = cv2.imread("new_image.jpg")
如何处理image
的RGB值?
答案 0 :(得分:7)
你可以做到
image[y, x, c]
或等效image[y][x][c]
。
它将返回x,y,c
坐标中像素的值。请注意,索引从0
开始。因此,如果要访问第三个BGR(注意:不是RGB)组件,则必须执行image[y, x, 2]
,其中y
和x
是所需的行和列。
此外,您可以通过键入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],反之亦然