opencv 入门笔记五 padding(图像加边框)

1.传统艺能了,上代码:

cv.copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)
    src:原图像
    top,bottom,left,right:边界宽度,单位:像素值(pixel)
    borderType:
         cv2.BORDER_CONSTANT, 带颜色的边界,需要传入另外一个颜色值
         cv.BORDER_REFLECT, 边缘元素的镜像反射做为边界
         cv2.BORDER_REFLECT_101/cv2.BORDER_DEFAULT
         cv.BORDER_REPLICATE, 边缘元素的复制做为边界
         cv.BORDER_WRAP
    dst: 输出,画布,尺寸为 (src.shape[1]+left+right, src.shape[0]+top+bottom)
    返回图像 dst 与原图像 src 内存地址不一样( 原图像 src 并没有被添加边框 ),一般不用dst而  用以下代码产生新图片
    value: borderType为cv2.BORDER_CONSTANT时,传入的Q边界颜色值,如[0,255,0]

2.当然了,可能有人会问图像加框有什么用呢?

当然有用!

在神经网络对图片进行特征提取/训练之前,一般要对图片进行预处理,不同尺寸的图片tensor大小不同,无法输入同一个特定神经网络进行训练,这时对图像进行缩放,padding,拼接就显得尤为重要了。

#!/usr/bin/python3
# coding:utf-8

import cv2 as cv

# 读取图像
img = cv.imread("/home/newj/图片/ima.jpeg")
print(img.shape)
# 显示原图
cv.imshow("test_window0", img)

img1 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_CONSTANT, value=[0, 255, 0])
img2 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_REFLECT)
img3 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_REPLICATE)
img4 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_WRAP)
cv.imshow("BORDER_CONSTANT", img1)
cv.imshow("BORDER_REFLECT", img2)
cv.imshow("BORDER_REPLICATE", img3)
cv.imshow("BORDER_WRAP", img4)

# 阻塞等待
key = cv.waitKey(0)

# 输入q,退出
if key == ord('q'):
    cv.destroyAllWindows()

 3.一般情况下,加纯色边框就够用了,但一些特殊场合还得用镜像等方式!

 4.最后,每天进步一点点!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Newjet666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值