镜像padding一张图片,利用pytorch.nn.functional.pad()

import torch as t
import torch.nn as nn

def ReflectPad2D(image, pad_size):
    '''
    镜像padding
    :param image: 图像
    :param pad_size: padding大小,我这里简化成正方形图,四个方向全padding同样的值

    :return: padding后的图像
    '''
    original_shape = image.shape
    image = image.reshape([1]+list(original_shape)) # reshape成4D

    ''' 利用torch.nn.functional.pad() 进行padding,由于该函数其只能padding 4D图的后两维,3D的最后一维 ,所以这里进行了两次reshape'''
    image = t.tensor(image)
    p1d = (pad_size, pad_size, pad_size, pad_size) # pad last dim by (1, 1) and 2nd to last by (2, 2)
    pad_image = nn.functional.pad(image, p1d, mode='reflect')
    pad_image = pad_image.reshape(original_shape[0], original_shape[1]+2*pad_size, original_shape[2]+2*pad_size) # reshape 回3D

    return pad_image

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值