Условно присваивать значения пикселей одного изображения другому - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть два изображения (одинакового размера): A и B

A - маска , она содержит области с нулевым значением и другие, имеющие значения RGB.

B - это RGB-изображение , в которое я хочу изменить значения некоторых из его пикселей на соответствующие пиксели А (пиксели, которые имеют одинаковую позицию и отличаются от нуля).

Я думаю, что это будет примерно так:

если A (i, j) <> 0, то B (i, j) = A (i, j)

кроме того, что я не знаю, как написать это на python ... кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Чтобы применить mask для src, вы можете использовать cv2.bitwise_and:

cv2.bitwise_and(src, src, mask=mask)
0 голосов
/ 23 сентября 2018

Если вы читаете изображения с opencv:

h = b.shape[0]
w = b.shape[1]
for y in range(0, h):
        for x in range(0, w):
            if a[y,x] > 0:
                b[y,x] = a[y,x]

Или лучше, как указывает @Dan Mašek в комментарии

import numpy as np

def apply_mask(img, mask):
    img = np.where(mask > 0, mask, img)
    return img

Обратите внимание, что в numpy массивах,высота на первом месте в форме.Opencv загружает изображение в массивы numpy.

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