一、官方的例子:

OpenCV: Basic Operations on Images

函数定义:

cv.copyMakeBorder(src,  top,  bottom,  left,  right,  borderType[, dst[, value]])  -> dst

作用:

If you want to create a border around an image, something like a photo frame, you can use cv.copyMakeBorder(). But it has more applications for convolution operation, zero padding etc.

参数:

  • src - input image
  • topbottomleftright - border width in number of pixels in corresponding directions
  • borderType - Flag defining what kind of border to be added. It can be following types:
    • cv.BORDER_CONSTANT - Adds a constant colored border. The value should be given as next argument.
    • cv.BORDER_REFLECT - Border will be mirror reflection of the border elements, like this : fedcba|abcdefgh|hgfedcb
    • cv.BORDER_REFLECT_101 or cv.BORDER_DEFAULT - Same as above, but with a slight change, like this : gfedcb|abcdefgh|gfedcba
    • cv.BORDER_REPLICATE - Last element is replicated throughout, like this: aaaaaa|abcdefgh|hhhhhhh
    • cv.BORDER_WRAP - Can't explain, it will look like this : cdefgh|abcdefgh|abcdefg
  • value - Color of border if border type is cv.BORDER_CONSTANT

例子:

Below is a sample code demonstrating all these border types for better understanding:

import cv2
import numpy as np
from matplotlib import pyplot as plt
BLUE = [255,0,0]
img1 = cv2.imread('opencv-logo.png')replicate = cv2.copyMakeBorder(img1, 10, 10, 10, 10, cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1, 10, 10, 10, 10, cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1, 10, 10, 10,10, cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1, 10, 10, 10, 10, cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(img1, 10, 10, 10, 10, cv2.BORDER_CONSTANT, value=BLUE)plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()

二、中文参数解释

  1. src : 输入图片
  2. top, bottom, left, right :相应方向上需要填充的像素宽度
  3. borderType:要添加边框的类型,可以是以下的某一种:
    cv2.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)
    cv2.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射,类似于gfedcb|abcdefgh|gfedcba
    cv2.BORDER_REFLECT_101 or cv2.BORDER_DEFAULT:和上面类似,但是有一些细微的不同,类似于gfedcb|abcdefgh|gfedcba
    cv2.BORDER_REPLICATE:使用最边界的像素值填充,类似于aaaaaa|abcdefgh|hhhhhhh
    cv2.BORDER_WRAP:不好解释,直接看例子,cdefgh|abcdefgh|abcdefg
  4. value:如果borderType为cv2.BORDER_CONSTANT时需要填充的常数值。

opencv cv2.copyMakeBorder()函数详解相关推荐

  1. OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 在<OpenCV-Python图像的加法运算cv2.add函数详解> ...

  2. python中减法运算函数_OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减...

    OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减 OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比 ? ? 前往老猿 ...

  3. cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标

    cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标 最近因为用到了这个函数,所以就趁着这个机会,好好顺顺,做下记录. ellipse = cv2.fitEllipse ...

  4. opencv学习笔记五:cv2.warpAffine()函数详解

    cv2.warpAffine()函数主要是利用变换矩阵M对图像进行如旋转.仿射.平移等变换,只需要我们提供一个2*3的变换矩阵M,就可以对图像进行变换.它一般是和cv2.getRotationMatr ...

  5. opencv 二值化 python_opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

  6. opencv 二值化 matlab,opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

  7. 计算机视觉开源库OpenCV之threshold()函数详解

    cv2.threshold()函数作用:去掉噪,例如过滤很小或很大像素值的图像点. cv2.threshold()函数python版原型: retval, dst = cv.threshold(src ...

  8. cv2.minAreaRect函数详解

    一.cv2.minAreaRect函数作⽤:返回不规则四边形的最⼩外接矩形 二.opencv4.2版本: 1.输入:多边形轮廓形点 2.输出:最⼩外接矩形的中⼼点坐标x,y,宽⾼w,h,⾓度anlge ...

  9. opencv cv.findContours 函数详解

    函数 cv.findContours contours, hierarchy = cv.findContours( image, mode, method[, contours[, hierarchy ...

  10. OpenCV-Python图像的加法运算cv2.add函数详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.加法概述 图像加法主要有两种用途,一种是可用于减少甚至消除图像采集中混入的噪声,由于图像各点的采集噪声是互不相关的,且噪声具有零均值的统计特性,因此可以对 ...

最新文章

  1. Aspose.Words导出图片 表格 Interop.Word
  2. 短序比对工具 bowtie vs BWA vs Subread vs SOAP vs NovoAlign
  3. matlab绘图大全
  4. 你真的认真想过了吗?
  5. java 方法 示例_Java扫描仪具有示例的NextNextInt()方法
  6. 基于bootstrap的后台左侧导航菜单和点击二级菜单刷新二级页面时候菜单展开显示当前菜单...
  7. python_tornado
  8. 关于php开发中用户请求数据的安全问题的一点想法
  9. vs2013 mfc连接MySQL数据库
  10. 移远ec20 4g模块linux驱动移植,Hi3798移植4G模块(移远EC20)
  11. matlab nist接口文件,RefProp流体热物理性质计算程序与Matlab接口
  12. flex和blazeds_使用BlazeDS和AMF构建Web和桌面应用程序
  13. 关于微信公众号运营你要知道的24件小事
  14. 如何删除Mac电脑中的第三方字体?
  15. JS onblur 和 onfocus 造成死循环
  16. 禁止网页右键查看源代码
  17. 个人记账本,教你使用图表格查看项目
  18. 【TensorFlow】DNNRegressor 的简单使用
  19. Tomcat一些常见错误(遇到错误就更新)
  20. html+css+js 制作表白翻页相册

热门文章

  1. lua中 只有 nil 和 false 为假, 其他都为真包括0
  2. 【排序】排序算法之分配排序
  3. Python3入门机器学习经典算法与应用 第3章 读取数据和简单的数据探索
  4. 2017 CIMS计算机集成制造系统 paper 数字孪生及其应用探索
  5. 扇贝有道180903每日一句
  6. Atitit 知识聚合的方法大总结 目录 1. 什么是聚合 汇聚 1 2. 聚合化应用场景 2 2.1. 一站式 2 3. 知识聚合的历史与趋势
  7. Atitit 语义网的实现技术 目录 1. 语义网概念及技术综述 1 2. 图2-1 语义网的体系结构 2 2.1. 第1层:基础层,主要包含Unicode和URI(Uniform resource
  8. Atitit.url 汉字中文路径  404 resin4 resin  解决  v2 q329
  9. Atitit.图片木马的原理与防范 attilax 总结
  10. paip.java win程序迁移linux的最佳实践