将Numpy阵列中的白色像素替换为黑色像素

时间:2018-10-23 19:23:47

标签: python arrays numpy python-2.x

我已将图像myImage转换为灰度并将其加载到numpy数组中。

作为参考,myImage.shape返回(184L, 184L)

myImage是完全白色的情况下。也就是说,所有255个像素值。如何用黑色像素0替换白色像素?

可能是1或2或10个黑色像素替换。我只需要黑色像素的数量不能为空即可。

2 个答案:

答案 0 :(得分:1)

根据您的评论:我想获取第一个白色像素(255)并将其更改为黑色像素(0),您可以使用:

myImage[0,0] = 0

最小示例:

myImage = np.ones((5,5))*255
>>> myImage
array([[255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.]])

myImage[0,0] = 0

>>> myImage
array([[  0., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.],
       [255., 255., 255., 255., 255.]])

答案 1 :(得分:1)

更一般的

import numpy as np
image = np.ones((5,5))*255
old_val = 255
new_val = 0
image[image==old_val]=new_val