繁体   English   中英

如何添加只填充零而不影响 Python OpenCV 中的非零

[英]How to add such that only zeros are filled leaving non-zeros unaffected in Python OpenCV

我正在尝试将一个图像的降档版本添加到原始图像,并且我想添加两个图像,以便填充零而不影响非零。 我尝试了以下方法。 提前感谢您的帮助!

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM