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 25 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
python数据结构之列表和元组的详解
Sep 23 Python
Python解析并读取PDF文件内容的方法
May 08 Python
pandas带有重复索引操作方法
Jun 08 Python
python中eval与int的区别浅析
Aug 11 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Pandas中DataFrame基本函数整理(小结)
Jul 20 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
python安装sklearn模块的方法详解
Nov 28 Python
Python中zipfile压缩包模块的使用
May 14 Python
Pandas数据结构之Series的使用
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读取和编写XML DOM的实现代码
2011/02/03 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
php swoft框架实例用法
2020/12/22 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python3.4实现邮件发送功能
2018/05/28 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python interpolate插值实例
2020/07/06 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
一些Unix笔试题和面试题
2012/09/25 面试题
工程部经理岗位职责
2013/12/08 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
安全月活动总结
2014/05/05 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android