我们经常会有对图像边缘做扩展的需求.比如

  • 希望卷积后得到的矩阵大小不变
  • 希望改变图像大小,但是不改变宽高比

opencv实现

opencv中使用copyMakeBorder()来完成这一功能

api

  • src是原图像矩阵
  • dst是新图像矩阵
  • top/bottom/left/right是边界扩展的大小(比如5就代表5个像素)
  • borderType
  • value是扩充的像素填什么值

borderType分两种:

  • BORDER_CONSTANT
  • 边缘填充用固定像素值,比如填充黑边,就用0,白边255
  • BORDER_REPLICATE
  • 用原始图像相应的边缘的像素去做填充,看起来有一种把图像边缘"拉糊了"的效果

opencv示例

import sysimport cv2 as cvdef 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

c++ opencv实现区域填充_利用opencv之为图像添加边框相关推荐

  1. java opencv 阀值分割_利用OpenCV实现局部动态阈值分割

    利用OpenCV实现局部动态阈值分割,参考Halcon dyn_threshold算子的思路实现. #include "dialog.h" #include #include &q ...

  2. opencv 识别长方形_利用opencv识别并提取图片中的矩形

    这次是利用opencv来识别图片中的矩形. 其中遇到的问题主要是识别轮廓时矩形内部的形状导致轮廓不闭合. 过程如下: **1. 对输入灰度图片进行高斯滤波 2. 做灰度直方图,提取阈值,做二值化处理 ...

  3. c++ opencv实现区域填充_使用OpenCV实现图像覆盖

    每张图像都包括RGB三个通道,分别代表红色.绿色和蓝色,使用它们来定义图像中任意一点的像素值,红绿蓝的值在0-255之间. 例如:一个像素值[255,0,0]代表全部为红色,像素值[255,255,0 ...

  4. opencv 识别长方形_利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

    问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢的画,用手机找了下来, ...

  5. python如何实现找图_利用OpenCV和Python实现查找图片差异

    使用OpenCV和Python查找图片差异 flyfish 方法1 均方误差的算法(Mean Squared Error , MSE) 下面的一些表达与<TensorFlow - 协方差矩阵&g ...

  6. python sobel算子_利用sobel算子计算图像的梯度(python+opencv)

    sobel算子计算的梯度图是带有方向的 代码实现如下: #coding=utf-8 import cv2 import numpy as np #利用sobel算子计算图像的梯度 img=cv2.im ...

  7. opencv 检测几何图形_使用OpenCV + ConvNets检测几何形状

    opencv 检测几何图形 A simple yet powerful pipeline for detecting shapes in scanned documents 一个简单而强大的管道,用于 ...

  8. python opencv 相机标定_使用OpenCV校准鱼眼镜头的方法

    01.简介 当我们使用的鱼眼镜头视角大于160°时,OpenCV中用于校准镜头"经典"方法的效果可能就不是和理想了.即使我们仔细遵循OpenCV文档中的步骤,也可能会得到下面这个奇 ...

  9. opencv 图片叠加_基于OpenCV的红绿灯识别代码解析

    一堆废话 红绿灯分为导向灯和圆形灯.一般圆形灯在路口只有一盏灯,红灯亮时禁止直行和左转,可以右转弯.导向灯市带有箭头的,可以有两个或三个,分别指示不同方向的行车和停车.按指示的灯即可,没有右转向导向灯 ...

最新文章

  1. 论文《一种金融市场预测的深度学习模型:FEPA》(2)----有效市场假说,预测原则概念及自己的思考
  2. stm32难不难学,没学51单片机可以直接学STM32吗?
  3. c++读取文件内容并保存到二维数组
  4. Leaflet中使用awesome-markers插件显示带图标的marker
  5. JZOJ__Day 6:【普及模拟】Oliver的成绩(score)
  6. 六、springcloud之配置中心Config
  7. bzoj 4443 [Scoi2015]小凸玩矩阵 网络流,二分
  8. Django模型定义参考
  9. java 佳博打印机,佳博蓝牙打印的java 连接
  10. vaadin ---用maven创建vaadin 的工程
  11. 【渝粤教育】国家开放大学2018年春季 0471-22T畜牧学 参考试题
  12. 自己动手写操作系统(三)
  13. 文件生成Md5值方法
  14. 打印机打印的时候会打印计算机用户,打印机打印的时候出现administrator是什么意思...
  15. python将html转成pdf,python将html转成PDF的示例
  16. Mimikatz获取系统密码攻防研究
  17. Write-Ahead Log(WAL)的工作原理
  18. Leetcode_53_Maximum Subarray
  19. JavaScript在数组尾部添加元素
  20. [高通MSM8953][Android10]user版本背光亮度无法调节

热门文章

  1. 机器学习项目实战----信用卡欺诈检测(二)
  2. SICP 习题 (1.34)解题总结
  3. 【ML】理解偏差和方差,过拟合和欠拟合
  4. 面向对象的四大特征 封装 继承 多态 抽象
  5. CF-697B Barnicle与691C Exponential notation
  6. 转:XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较
  7. js 获取指定范围的随机数
  8. 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
  9. Nginx常用使用解读及配置
  10. xftp无法链接Linux