有没有办法检查一下名单上有没有人np.array?

2024-06-16 09:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到一种方法来检查我的图像是否有任何特定的RGB值。你知道吗

我有一张单子

rgb = [128,134,45]

还有一张照片

img = array([[[0,0,0],[128,134,45],[128,134,45],...,[0,0,0],[0,0,0],[0,0,0]]]) 形状=(64,64,3)

想得到rgb与img[j][i]匹配的位置(i,j),比如pos = [(0,1),(0,2),...]

我试着用“in”比如if rgb in img: brbr,但没用。你知道吗


Tags: 方法inpos图像imgifrgbarray
2条回答
>>>np.where((img==rgb).all(axis=2))
(array([0, 0], dtype=int32), array([1, 2], dtype=int32))

这将为您提供rgb值的索引

img[0][1]img[0][2]

与@Bendik的答案类似,但这个额外的步骤将为您提供一个包含所有匹配位置的数组:

np.rot90(np.array(np.where((img==rgb).all(axis=2))))

例如:

img = np.zeros((64,64,3))
rgb = [128,134,45]
img[1,2] = rgb
img[23,32] = rgb
# These are the values we want to find - (1,2) and (23,32)
result = np.rot90(np.array(np.where((img==rgb).all(axis=2))))
print(result)

#OUTPUT:
array([[23, 32],
       [ 1,  2]], dtype=int64)

相关问题 更多 >