用 Numpy 数组中的黑色像素替换白色像素

replace a white pixel with a black pixel in a Numpy array

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

供参考,myImage.shape returns (184L, 184L)

myImage 全白的情况下。即所有 255 个像素值。如何用黑色像素替换白色像素0

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

根据您的评论:我想将第一个白色像素 (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.]])

更一般的东西

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