2024-09-28 05:25:17 发布
网友
我是numpy新手,我想替换3D numpy数组中的specefic元素。我的3D numpy数组表示一个图像。阵列的形状为: (1080, 1920, 3). 数字3表示图像中每个像素的RGB。你知道吗
我只想知道如何将所有等于[0,0,0]的元素改成[255255] 这意味着我希望图像中所有的黑色像素都是白色。。我该怎么做? 谢谢!你知道吗
假设您已将数组存储在data;这样应该可以:
data
data[(data == 0).all(axis=2)] = [255, 255, 255]
这是由于numpy的广播规则将每个值与0进行比较,从而生成一个布尔数组,其中True值比较相等,而False值比较其他值。你知道吗
numpy
True
False
下一步是只取那些所有单个值比较相等的子数组,其中.all(axis=2)是最后一个轴,这是您想要的轴。你知道吗
.all(axis=2)
然后,使用生成的布尔数组,可以索引回data,这将只提供那些等于[0, 0, 0]的子数组,并将它们设置为[255, 255, 255]。你知道吗
[0, 0, 0]
[255, 255, 255]
假设您已将数组存储在
data
;这样应该可以:这是由于
numpy
的广播规则将每个值与0进行比较,从而生成一个布尔数组,其中True
值比较相等,而False
值比较其他值。你知道吗下一步是只取那些所有单个值比较相等的子数组,其中
.all(axis=2)
是最后一个轴,这是您想要的轴。你知道吗然后,使用生成的布尔数组,可以索引回
data
,这将只提供那些等于[0, 0, 0]
的子数组,并将它们设置为[255, 255, 255]
。你知道吗相关问题 更多 >
编程相关推荐