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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python RuntimeError: thread.__init__() not called解决方法
Apr 28 Python
python中os模块详解
Oct 14 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
三步实现Django Paginator分页的方法
Jun 11 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
python openpyxl模块的使用详解
Feb 25 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伪静态写法附代码
2008/06/20 PHP
php获取淘宝分类id示例
2014/01/16 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
JavaScript实现找质数代码分享
2015/03/24 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
Python解析nginx日志文件
2015/05/11 Python
python变量命名的7条建议
2019/07/04 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
物流经理自我评价
2013/09/23 职场文书
如何进行有效的自我评价
2013/09/27 职场文书
绝对经典成功的大学生推荐信
2013/11/08 职场文书
业务主管岗位职责
2013/11/20 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
oracle数据库去除重复数据
2022/05/20 Oracle
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers