我正在将图像加载到 python 中,例如
image = cv2.imread("new_image.jpg")
我如何访问 RGB 值image
?
我正在将图像加载到 python 中,例如
image = cv2.imread("new_image.jpg")
我如何访问 RGB 值image
?
你可以做
image[y, x, c]
或等效地image[y][x][c]
。
它将返回x,y,c
坐标中像素的值。请注意,索引从 开始0
。因此,如果您想访问第三个 BGR(注意:不是 RGB)组件,您必须执行所需的行和列的位置和image[y, x, 2]
列y
。x
此外,您可以通过键入来获取给定对象在 Python 中可用的方法dir(<variable>)
。例如,加载后image
,运行dir(image)
,你会得到一些有用的命令:
“cumprod”、“cumsum”、“数据”、“对角线”、“点”、“dtype”、“转储”、“转储”、“填充”、 'flags','flat','flatten','getfield','imag','item','itemset','itemsize', “最大”、“平均”、“最小”、...
用法:image.mean()
使用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
输出: [73 89 102]
此代码将打印像素 300、300 的红色、绿色和蓝色值:
img1 = cv2.imread('Image.png', cv2.IMREAD_UNCHANGED)
b,g,r = (img1[300, 300])
print (r)
print (g)
print (b)
它对我很有效:
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`
我认为获取图像 RGB 的最简单方法是使用cv2.imshow("windowName",image)
. 图像会以窗口形式显示,小信息栏还会在图像下方显示坐标(x,y)和RGB。喜欢这张照片。您可以使用鼠标查看您想要的任何像素的 RGB。
代码示例:
import cv2
image = cv2.imread("new_image.jpg")
try:
cv2.imshow("windowName",image)
cv2.waitKey(0)
except:
print("No this image")
您可以使用 numpy 更好地将图像转换为 numpy 数组并转置矩阵 [RGB] 将是 [BGR] 反之亦然