python+opencv实现图像的padding

一、目的

比如我有一张 2 × 2 2\times2 2×2大小的图片,需要把它resize 4 × 4 4\times4 4×4大小,但是又不想直接resize,而是保证原 2 × 2 2\times2 2×2大小的内容不变。这个时候就需要在原始 2 × 2 2\times2 2×2的图像左、右、上、下各加1排各大小的像素,比如全是0。
在这里插入图片描述

二、代码

import cv2


def pad_img(img_,w_=1280,h_=720,value_=[0,0,0]):
    """args:
    img_: opencv的img\n
    w_: 宽
    h_: 高
    value: padding的值
    return: 上下左右各padding之后的opencv的img
    """
    h,w,_ = img.shape
    top = (h_ - h ) // 2
    bottom = (h_ - h ) - top
    left = (w_ - w) // 2
    right = (w_ - w) - left

    pad_img = cv2.copyMakeBorder(img,
                top=top,bottom=bottom,
                left=left,right=right,
                borderType=cv2.BORDER_CONSTANT,
                value=value_)
    
    return pad_img

if __name__ == '__main__':
	filename = "0002.jpg"
    img = cv2.imread(filename)
    img_pad = pad_img(img,)
    cv2.imwrite(f"pics/{filename}.jpg",img_pad)
    print(f'img_pad.shape = {img_pad.shape}')
    cv2.imshow('pad img',img_pad)
    cv2.waitKey(0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值