np.pad各种方式的图文解释

‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x,y)时前面用x填充,后面用y填充,缺省值填充0

‘edge’——表示用边缘值填充

‘linear_ramp’——表示用边缘递减的方式填充

‘maximum’——表示最大值填充

‘mean’——表示均值填充

‘median’——表示中位数填充

‘minimum’——表示最小值填充

‘reflect’——表示对称填充

‘symmetric’——表示对称填充

‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面

图文解释

原图

在这里插入图片描述

constant(连续填充相同的值,每个轴可以分别指定填充值)

Image.fromarray(resize(im,mode=‘constant’,constant_values=(10,160)))
在这里插入图片描述

edge(用边缘值填充)

在这里插入图片描述

linear_ramp(边缘递减的方式填充)

在这里插入图片描述

maximum(最大值填充)

在这里插入图片描述

mean(均值填充)

在这里插入图片描述

median(中位数填充)

在这里插入图片描述

minimum(最小值填充)

在这里插入图片描述

reflect(对称填充)

在这里插入图片描述

symmetric(对称填充)

在这里插入图片描述

wrap(用原数组后面的值填充前面,前面的值填充后面)

在这里插入图片描述

测试代码

class ResizeWithPadding(object):
    def __init__(self, target_size=(256, 256)):
        self.target_size = target_size

    def __call__(self, np_img,mode='linear_ramp',constant_values=0, gt=None, pos=None):
        # 获取图像的原始尺寸
        h, w, _ = np_img.shape
        target_h, target_w = self.target_size

        # 计算 padding 大小
        pad_top = (target_h - h) // 2
        pad_bottom = target_h - h - pad_top
        pad_left = (target_w - w) // 2
        pad_right = target_w - w - pad_left

        # 使用 numpy 进行 padding
        if mode != "constant":
            padded_img = np.pad(np_img, ((pad_top, pad_bottom), (pad_left, pad_right), (0, 0)), mode=mode)
        else:
            padded_img = np.pad(np_img, ((pad_top, pad_bottom), (pad_left, pad_right), (0, 0)), mode='constant', constant_values=constant_values)

        return padded_img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值