图像数组的形状是(540, 960, 3)
,它是这样的:
img_rgb = [[[ 95 71 71]
[ 95 71 71]
[ 95 71 71]
...
[182 171 181]
[182 171 181]
[182 171 181]]
[[ 95 71 70]
[ 95 71 70]
[ 95 71 71]
...
[183 172 182]
[183 172 182]
[183 172 182]]
[[ 95 72 70]
[ 95 71 70]
[ 95 71 71]
...
[183 172 182]
[183 172 182]
[183 172 182]]
...
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]
[[ 36 35 45]
[ 36 35 45]
[ 36 35 45]
...
[ 49 45 50]
[ 49 45 50]
[ 49 45 50]]]
我想通过indices
来获取表示每个元素索引的元素,indices
像这样:
indices = [
[0, 0], [0, 1], [0, 2]
]
预期输出
[
[ 95 71 71],
[ 95 71 71],
[ 95 71 71],
]
在这些链接中有两个类似的问题,一个是Python numpy 2D数组对某些索引求和,另一个是从存储在numpy ndarrays中的图像中找到特定(R,G,B)颜色值的(x,y)索引。
当我通过img_rgb[tuple(indices)]
尝试第一个问题时,它得到了一个IndexError: too many indices for array
。
你只需要转置indices
。
img_rgb[tuple(np.transpose(indices))]
即使indices
只是一个列表,np.tranpose()
也可以工作,因为它期望输入任何"类数组"结构。