我正在尝试将一个图像的降档版本添加到原始图像,并且我想添加两个图像,以使零填充,而使非零不受影响。我尝试了以下方法。预先感谢您的帮助!
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)
如果您只是希望最后一行是倒数第二行的副本,则此代码将起作用。
>>> 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)