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回调函数的使用方法
Jan 23 Python
Ubuntu下安装PyV8
Mar 13 Python
详解Python中contextlib上下文管理模块的用法
Jun 28 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
Python中print和return的作用及区别解析
May 05 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
python动态视频下载器的实现方法
Sep 16 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
Python中的socket网络模块介绍
Jul 23 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
77A一级收信机修理记
2021/03/02 无线电
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
关于PHP开发的9条建议
2015/07/27 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python中函数传参详解
2016/07/03 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python实现屏保计时器的示例代码
2018/08/08 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
python 实现生成均匀分布的点
2019/12/05 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
先进个人推荐材料
2014/12/29 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
给病人的慰问信
2015/03/23 职场文书
学生会任命书范本
2015/09/21 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Nginx进程调度问题详解
2021/09/25 Servers