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-8import 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.最后,每天进步一点点!

opencv 入门笔记五 padding(图像加边框)相关推荐

  1. 【OpenCV学习笔记之一】图像加载,修改及保存

    加载图像(用cv::imread) imread功能是加载图像文件成为一个Mat对象 其中第一个参数表示图像文件名称 第二个参数 表示加载的图像是什么类型 支持常见的三个参数值 IMREAD_UNCH ...

  2. 视频图像数据处理五:对yuv420视频图像加边框

    文章目录 函数代码 测试用例 下载 本文介绍了对yuv420视频图像加边框的方法,附有详细的代码和图像示例.文中yuv420文件需要使用yuv/rgb播放器才能查看,参考播放器可选择雷神推荐的修改了一 ...

  3. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析

    [-] 一开胃菜之一  关于OpenCV的命名空间 二开胃菜之二  关于Mat类型 三图像的载入和显示 imread函数 namedWindow函数 imshow函数 四输出图像到文件imwrite函 ...

  4. Python+OpenCV图像处理(五)——图像阈值和二值化

    系列文章 Python+OpenCV图像处理(一)--OpenCV框架与图像插值算法 Python+OpenCV图像处理(二)--几何变换 Python+OpenCV图像处理(三)--彩色空间互换 P ...

  5. OpenCV入门系列 —— cv::dilate 图像膨胀

    OpenCV入门系列 -- cv::dilate 图像膨胀 前言 程序说明 输出结果 代码示例 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领域的应用和重要程度也同步激增(识别 ...

  6. opencv学习笔记五--文件扫描+OCR文字识别

    opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...

  7. opencv 入门笔记十 图片序列保存为视频

    1.代码: 其中:视频格式设置请看这篇:opencv 入门笔记三(采集视频,保存视频)_Newjet666的博客-CSDN博客 其中:读取图片并画框请看这篇: opencv 入门笔记八 文件夹读取图片 ...

  8. matlab 平均梯度,OpenCV 自学笔记33. 计算图像的均值、标准差和平均梯度

    OpenCV 自学笔记33. 计算图像的均值.标准差和平均梯度 均值.标准差和平均梯度是验证图像质量的常用指标.其中: 均值反映了图像的亮度,均值越大说明图像亮度越大,反之越小: 标准差反映了图像像素 ...

  9. opencv学习笔记11:图像滤波(均值,方框,高斯,中值)

    为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...

最新文章

  1. Nature子刊:细菌和古菌从域到种的完整分类
  2. nginx自签SSL证书和Symantec签发证书使用
  3. java怎么把大小写转换_JAVA 如何将String进行大小写转换
  4. 双系统格盘后因grub无法进入xp系统问题,将linux所在分区格后启动停在grub。。。无法进入系统
  5. web页面锁屏初级尝试
  6. (归并排序 快排 堆)
  7. 爱奇艺PPS如何登陆账号
  8. java map取第一个元素_Java 8从Map中的匹配值中提取第一个键
  9. Vue 2.x 实战之后台管理系统开发(二)
  10. android学习笔记---40_建立能与访问者进行相互通信的本地服务,后台运行的service
  11. Facebook 面向个性化推荐系统的深度学习推荐模型
  12. Pagerank-2
  13. 【RobotStudio学习笔记】(四)夹取工件程序设计
  14. 构建企业级DNS系统(五)bind9日志记录
  15. 「缠师课后回复精选」第14课: 喝茅台的高潮程序!
  16. 百加得改变生产方式,协助生产洗手液
  17. VirtualBox安装Centos图解教程
  18. Oracle(二)Oracle sql操作
  19. Django开发个人博客网站
  20. how2j:JAVA学习笔记——DAY4

热门文章

  1. SuperMap GIS的TIN地形数据处理十问
  2. 《自然语言处理实战入门》---- 神经网络与推荐系统初步简介
  3. 我的世界服务器修改神兽几率,我的世界神奇宝贝mod神兽刷新率调整方法 神兽刷新率怎么增加...
  4. MapReduce任务卡在Running Job状态的多种解决方法
  5. vs2005 sp1补丁安装,报1718错误: 数字签名拒绝
  6. 【Linux】set ff=unix
  7. pandas数据分析基础之时间序列
  8. css flex换行且均匀分布
  9. manjaro 开机启动项_Re:从零开始的Manjaro配置
  10. 浏览器缓存及实现原理