Python,Numpy,替换图像中的某些值

时间:2019-01-07 16:21:03

标签: python numpy

我正在寻找一种替换numpy图片中某些值的有效方法。 到目前为止,这是我得到的:

def observation(self, img):
    # 45 50 184
    background = np.array([45, 50, 184])
    # 80 0 132
    border = np.array([80, 0, 132])
    img = self.crop(img)
    for line_index, line in enumerate(img):
        for pixel_index, pixel in enumerate(line):
            if not np.array_equal(pixel, background) and not np.array_equal(pixel, border):
                img[line_index][pixel_index] = [254, 254, 254]

该想法是将所有非背景或非白色的颜色替换为白色。 我对此很陌生,因此,我很确定有一种更有效的方法可以做到这一点。

谢谢。

1 个答案:

答案 0 :(得分:2)

knn.pred <- knn(trainset[, -13], testset, cl, k = 107) 应该可以完成这项工作。您必须调用两次(一个用于背景,一个用于边框),或将两个条件numpy.whereimg != background组合在一起:

img != border

请参见this post作为一个小示例(可能重复吗?)

希望有帮助