Numpy数组-替换元素

2024-09-28 05:25:17 发布

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

我是numpy新手,我想替换3D numpy数组中的specefic元素。我的3D numpy数组表示一个图像。阵列的形状为: (1080, 1920, 3). 数字3表示图像中每个像素的RGB。你知道吗

我只想知道如何将所有等于[0,0,0]的元素改成[255255] 这意味着我希望图像中所有的黑色像素都是白色。。我该怎么做? 谢谢!你知道吗


Tags: 图像numpy元素数字rgb像素数组形状
1条回答
网友
1楼 · 发布于 2024-09-28 05:25:17

假设您已将数组存储在data;这样应该可以:

data[(data == 0).all(axis=2)] = [255, 255, 255]

这是由于numpy的广播规则将每个值与0进行比较,从而生成一个布尔数组,其中True值比较相等,而False值比较其他值。你知道吗

下一步是只取那些所有单个值比较相等的子数组,其中.all(axis=2)是最后一个轴,这是您想要的轴。你知道吗

然后,使用生成的布尔数组,可以索引回data,这将只提供那些等于[0, 0, 0]的子数组,并将它们设置为[255, 255, 255]。你知道吗

相关问题 更多 >

    热门问题