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中的描述符(descriptor)
Jun 03 Python
简单谈谈Python中的json与pickle
Jul 19 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
python三方库之requests的快速上手
Mar 04 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
Python中itertools的用法详解
Feb 07 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
用Python爬虫破解滑动验证码的案例解析
May 06 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
JavaScript中的冒泡排序法
2016/08/03 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
Android分包MultiDex策略详解
2017/10/30 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Python如何用filter函数筛选数据
2020/03/05 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
2014年自我评价
2014/01/04 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
预备党员考察意见范文
2015/06/01 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android