opencv之为图像添加边界的方法示例


Posted in Python onDecember 26, 2019

我们经常会有对图像边缘做扩展的需求.比如

希望卷积后得到的矩阵大小不变希望改变图像大小,但是不改变宽高比opencv实现

opencv中使用copyMakeBorder()来完成这一功能

api

opencv之为图像添加边界的方法示例

  1. src是原图像矩阵
  2. dst是新图像矩阵
  3. top/bottom/left/right是边界扩展的大小(比如5就代表5个像素)
  4. borderType
  5. value是扩充的像素填什么值

borderType分两种:

BORDER_CONSTANT
边缘填充用固定像素值,比如填充黑边,就用0,白边255

BORDER_REPLICATE
用原始图像相应的边缘的像素去做填充,看起来有一种把图像边缘"拉糊了"的效果

opencv示例

import sys
import cv2 as cv

def test():
 src = cv.imread("/home/sc/disk/keepgoing/opencv_test/lights.jpeg") 
 top = int(0.05 * src.shape[0]) # shape[0] = rows
 bottom = top
 left = int(0.04 * src.shape[1]) # shape[1] = cols
 right = left
 
 value = [0,0,0]
 borderType = cv.BORDER_CONSTANT
 dst1 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
 
 borderType = cv.BORDER_REPLICATE
 dst2 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
 
 cv.imshow("blackborder",dst1)
 cv.imshow("BORDER_REPLICATE",dst2)
 
 if 27 == cv.waitKey():
  cv.destroyAllWindows()
  
test()

效果如下:

opencv之为图像添加边界的方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习资料
Feb 08 Python
python如何实现反向迭代
Mar 20 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
python3中numpy函数tile的用法详解
Dec 04 Python
Python求平面内点到直线距离的实现
Jan 19 Python
python绘制雷达图实例讲解
Jan 03 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 Python
Python利用FlashText算法实现替换字符串
Mar 31 Python
Python 过滤错误log并导出的实例
Dec 26 #Python
python3 pathlib库Path类方法总结
Dec 26 #Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 #Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 #Python
基于h5py的使用及数据封装代码
Dec 26 #Python
python深copy和浅copy区别对比解析
Dec 26 #Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 #Python
You might like
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php常用数学函数汇总
2014/11/21 PHP
php控制文件下载速度的方法
2015/03/24 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python实现无证书加密解密实例
2014/10/27 Python
回调函数的意义以及python实现实例
2017/06/20 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
Python 随机按键模拟2小时
2020/12/30 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
linux面试相关问题
2012/08/11 面试题
人事主管岗位职责
2014/01/30 职场文书
企业文化口号
2014/06/12 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript