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 pickle模块用法实例
Apr 14 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
简单了解Python中的几种函数
Nov 03 Python
Python多进程并发与多线程并发编程实例总结
Feb 08 Python
python中单下划线_的常见用法总结
Jul 10 Python
TensorFlow Session会话控制&Variable变量详解
Jul 30 Python
使用tensorflow实现线性svm
Sep 07 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
int在python中的含义以及用法
Jun 27 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 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获取bing每日壁纸示例分享
2014/02/25 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python编写简单的HTML页面合并脚本
2016/07/11 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
最新pycharm安装教程
2020/11/18 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
写给老婆的检讨书
2014/02/21 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android