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 28 Python
python以环状形式组合排列图片并输出的方法
Mar 17 Python
python自定义解析简单xml格式文件的方法
May 11 Python
python实现决策树分类算法
Dec 21 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python 执行shell命令并将结果保存的实例
May 11 Python
浅谈flask源码之请求过程
Jul 26 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
Python如何绘制日历图和热力图
Aug 07 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 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 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP生成压缩文件实例
2015/02/07 PHP
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python找出最小的K个数实例代码
2018/01/04 Python
pandas数值计算与排序方法
2018/04/12 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
微信小程序python用户认证的实现
2019/07/29 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
聚美优品恶搞广告词
2014/03/14 职场文书
地理科学专业自荐信
2014/09/01 职场文书
工程款申请报告
2015/05/15 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
小学中队长竞选稿
2015/11/20 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python