【问题标题】:How to Zero Pad RGB Image?如何将填充 RGB 图像归零?
【发布时间】:2020-07-30 13:28:19
【问题描述】:

我想将大小为 500x500x3 的 RGB 图像填充到 512x512x3。我知道我需要在每个边框上添加 6 个像素,但我不知道怎么做。我已阅读 numpy.pad 函数文档,但不明白如何使用它。代码 sn-ps 将不胜感激。

【问题讨论】:

    标签: numpy opencv python-imaging-library opencv-python


    【解决方案1】:

    如果需要补0:

    RGB = np.pad(RGB, pad_width=[(6, 6),(6, 6),(0, 0)], mode='constant')
    

    使用constant_values 参数填充不同的值(默认为0):

    RGB = np.pad(RGB, pad_width=[(6, 6),(6, 6),(0, 0)], mode='constant', constant_values=0, constant_values=[(3,3),(5,5),(0,0)]))
    

    【讨论】:

      【解决方案2】:

      我们可以尝试通过添加边框填充来获得解决方案,但它会变得有点复杂。我想建议你可以替代方法。首先我们可以创建一个大小为512x512 的画布,然后我们将您的原始图像放置在这个画布中。您可以从以下代码中获得帮助:

      import numpy as np
      
      # Create a larger black colored canvas
      canvas = np.zeros(512, 512, 3)
      
      canvas[6:506, 6:506] = your_500_500_img
      

      显然,您可以将 6 和 506 转换为更通用的变量,并将其用作 padding512-padding 等,但这段代码说明了这个概念。

      【讨论】:

        猜你喜欢
        • 2020-08-23
        • 2016-12-01
        • 2019-04-27
        • 2019-11-29
        • 2019-03-05
        • 1970-01-01
        • 2018-06-10
        • 2015-01-12
        • 1970-01-01
        相关资源
        最近更新 更多