Изменить цвет изображения BGR с помощью маски? - PullRequest
0 голосов
/ 30 июня 2019

enter image description here У меня есть изображение BGR и 3 бинарные маски.Я хочу изменить цвет изображения BGR, применяя эти маски.Под этим я подразумеваю, что если пиксели [3] [3] и [4] [4] на маске равны единице (белого цвета), пиксели [3] [3] и [4] [4] на изображении будутбыть синего цвета (например).

Я хотел бы знать, есть ли способ избежать использования циклов с предложениями if-then-else.Я знаю, как это сделать.

Изображение, которое вы видите, - это вывод, который я хочу.Синий, красный и зеленый - это 3 разные маски, которые были вставлены в исходное изображение.Это двоичные изображения, поэтому они изначально представляют собой черно-белые маски.

Вот код, который я делаю, чтобы сделать это изображение:

row = 0
while row < height:
    column = 0
    while column < width:
        if true_positives_mask[row][column] != 0:
            original_image[row][column] = constants.GREEN
        elif false_positives_mask[row][column] != 0:
            original_image[row][column] = constants.BLUE
        elif true_negatives_mask[row][column] != 0:
            original_image[row][column] = constants.RED
        column += 1
    row += 1

return original_image

1 Ответ

0 голосов
/ 30 июня 2019

Более быстрое решение, с которым я столкнулся:

# True positives coordinates
coordinates = numpy.where(true_positives_mask != 0)
original_image[coordinates[0], coordinates[1]] = constants.GREEN
# False positives coordinates
coordinates = numpy.where(false_positives_mask != 0)
original_image[coordinates[0], coordinates[1]] = constants.BLUE
# False negatives coordinates
coordinates = numpy.where(false_negatives_mask != 0)
original_image[coordinates[0], coordinates[1]] = constants.RED

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