Как добавить так, чтобы заполнялись только нули, не влияя на нули в Python OpenCV - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь добавить уменьшенную версию одного изображения к оригиналу, и я хочу добавить два изображения так, чтобы нули заполнялись, оставляя ненулевые значения неизменными. Я попробовал следующее. Заранее спасибо за помощь!

import cv2
import numpy as np

#Given image
img1 = np.uint8(np.array([[0,  0,  0, 0],
                         [0, 10, 10, 0],  
                         [0, 20, 20, 0],
                         [0,  0,  0, 0]]))
#Target image: extend the lowest row of the non-zero region by an interger number of pixels(eg. 1 pixel)
img_target = np.array([[0,  0,  0, 0],
                       [0, 10, 10, 0],  
                       [0, 20, 20, 0],
                       [0, 20, 20, 0]])

#Tried this method but this does not work
img1_shiftdown=np.roll(img1,1,0)

img3=cv2.bitwise_or(img1,img1_shiftdown)

1 Ответ

0 голосов
/ 02 апреля 2020

Если вы просто хотите, чтобы последняя строка была копией второй-последней строки, этот код будет работать.

>>> img1 = np.uint8(np.array([[0,  0,  0, 0],[0, 10, 10, 0],  [0, 20, 20, 0],[0,  0,  0, 0]]))
>>> img1[-1]=img1[-2]
>>> img1
    array([[ 0,  0,  0,  0],
           [ 0, 10, 10,  0],
           [ 0, 20, 20,  0],
           [ 0, 20, 20,  0]], dtype=uint8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...