如何将彩色像素更改为白色像素

时间:2019-03-02 13:22:29

标签: python numpy computer-vision

我得到了彩色图像作为输入,我想检查方差的颜色信息(例如[0,0,0]-[255,255,255])。因此,如果方差超过某个点,我想将其更改为白色。

是这样的:

for y in range(img.shape[0]):
    for x in range(img.shape[1]):
        if numpy.var(img[y][x]) > 1000:
            img[y][x] = [255, 255, 255]

但是我需要好的表现。因此,我使用numpy.where()函数进行了尝试,但找不到解决方案。

1 个答案:

答案 0 :(得分:3)

您可以为此使用numpy的索引:

import numpy as np
import matplotlib.pyplot as plt

img = (np.random.rand(100,100,3)*255).astype(int)

img2 = np.copy(img)
img2[np.var(img, 2)>1000] = np.array([255, 255, 255])

fig, ax = plt.subplots(ncols=2)

ax[0].imshow(img)
ax[1].imshow(img2)

np.var的第二个参数是您要计算方差的轴;在这种情况下是颜色。

结果:

enter image description here