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 顺时针打印矩阵的超简洁代码
Nov 14 Python
Django之无名分组和有名分组的实现
Apr 16 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
python中class的定义及使用教程
Sep 18 Python
关于Python中定制类的比较运算实例
Dec 19 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
Python控制台实现交互式环境执行
Jun 09 Python
python异步的ASGI与Fast Api实现
Jul 16 Python
分析Python list操作为什么会错误
Nov 17 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
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
js读取本地文件的实例
2017/12/22 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
使用python实现BLAST
2018/02/12 Python
python操作mysql代码总结
2018/06/01 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python面试题之列表声明实例分析
2019/07/08 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python numpy中cumsum的用法详解
2019/10/17 Python
python 下载文件的几种方法汇总
2021/01/06 Python
逻辑链路控制协议
2016/10/01 面试题
企业文化建设实施方案
2014/03/22 职场文书
访谈节目策划方案
2014/05/15 职场文书
助学感谢信范文
2015/01/21 职场文书
党员个人总结范文
2015/02/14 职场文书
民事答辩状范本
2015/05/21 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python