Python, Numpy, заменить определенные значения в изображении - PullRequest
0 голосов
/ 07 января 2019

Я ищу эффективный способ замены определенных значений в обалденном изображении. Пока это то, где я получил:

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 голосов
/ 07 января 2019

numpy.where должен сделать работу. Вы должны вызвать его дважды (один для фона и один для границы) или объединить 2 условия img != background и img != border:

np.where(np.logical_and(img!=background, img != border), img, [254, 254, 254])

См. этот пост для небольшого примера (возможный дубликат?)

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...