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中内建函数的简单用法说明
May 05 Python
Python+Wordpress制作小说站
Apr 14 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
python处理“
Jun 10 Python
Python自动抢红包教程详解
Jun 11 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python如何读取、写入JSON数据
Jul 28 Python
解决Python字典查找报Keyerror的问题
May 26 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程序的国际化实现方法(利用gettext)
2011/08/14 PHP
基于php下载文件的详解
2013/06/02 PHP
关于crontab的使用详解
2013/06/24 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
python的id()函数解密过程
2012/12/25 Python
python实现实时监控文件的方法
2016/08/26 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
python中append实例用法总结
2019/07/30 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
护理自荐信范文
2013/10/05 职场文书
行政管理专业推荐信
2013/11/02 职场文书
工作自我评价分享
2013/12/01 职场文书
高中的职业生涯规划书
2013/12/28 职场文书
材料物理专业求职信
2014/09/01 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
2015最新民情日记范文
2015/06/26 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript