时间为友,记录点滴。

我们在《初始滤波之均值滤波》中有聊过滤波的本质,以及介绍了其中一种线性滤波(均值滤波)。对于常见的非线性滤波“中值滤波”也在《视频的读取和处理》中有介绍。今天我们来介绍另外两种滤波方式:

  • 最大值滤波
  • 最小值滤波

再了解这两种滤波之前,我们先来看一些概念。

啥是形态学?

简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将结构元素作用于输入图像来产生输出图像。

有啥作用?

常用的形态学处理方法包括:腐蚀、膨胀、开运算、闭运算、顶帽运算、底帽运算,其中膨胀腐蚀是图像处理中最常用的形态学操作手段,其他方法是两者相互组合而产生的。

膨胀和腐蚀的运用广泛:

  • 消除噪声
  • 分割(isolate)独立的图像元素,以及连接(join)相邻的元素。
  • 寻找图像中的明显的极大值区域或极小值区域。

如何实现?

我们可以想象跟卷积类似,首先选取一个结构元素(我们以3*3的矩形核为例),并且定义其锚定点(以重心为例),结构元素覆盖的部分。

以结构元素的最小值填充锚定点的做法为腐蚀

以结构元素的最大值填充锚定点的做法为膨胀

是不是变相的滤波?

OpenCV的大全,这种API肯定少不了啊。

膨胀:

CV_EXPORTS_W 

  • src 输入图像,任意通道的。深度可为CV_8U、CV_16U、CV_16S、CV_32F或CV_64F。
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • kernel 结构元素, 如果kernel=Mat()则为设定的3×3矩形。
  • anchor 锚定位置,默认中心位置。
  • iterations 循环次数
  • borderType 边缘填充类型(不用关心,使用默认值)

腐蚀:

CV_EXPORTS_W 

  • src 输入图像,任意通道的
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • kernel 结构元素
  • anchor 中心位置锚定
  • iterations 循环次数
  • borderType 边缘填充类型(不用关心,使用默认值)

获取结构元素:

CV_EXPORTS_W 

  • shape:表示内核的形状,有三种形状可以选择。

    • 矩形:MORPH_RECT;
    • 交叉形:MORPH_CROSS;
    • 椭圆形:MORPH_ELLIPSE;
  • ksize 是指结构元素大小
  • anchor 中心锚点的位置

看起来很简单,还是用代码来实践一下把。

C++

1. dilate和erode的后面几个参数都可以选用默认值
2. Kernel的选择要用getStructuringElement,参数选择有讲究

#include 

可以通过文件观察最大、最小值的替换

Python:

#!/usr/bin/env python

matlab腐蚀膨胀代码_(三十二)形态学----膨胀和腐蚀相关推荐

  1. matlab最优控制实验报告_第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt...

    第十二篇 章 用MATLAB解最优控制问题及应用实例 最优控制课件.ppt 综上所述可得结论:Q=diag(1,0,0),R=2时,系统各方面响应较好. 矩阵Q变大时,反馈矩阵变大: 当Q的对角线上第 ...

  2. java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组 ...

  3. jenkins 插件目录_三十二张图告诉你如何用Jenkins构建SpringBoot

    目录 前言 如何安装Jenkins?环境准备开始安装Jenkins 初始化配置访问首页输入管理员密码安装插件创建管理员实例配置配置完成 构建Spring Boot 项目配置JDK.maven.Git环 ...

  4. inkscape生成g代码_三点二. 量子对抗生成网络 (Quantum GAN)

    理论基础 之前我们介绍了强化学习 Leo:和Leo一起学量子计算:三点一. 微分线路和强化学习​zhuanlan.zhihu.com 上面这篇博文告诉我们如何把量子线路类比为神经网络,并获取它的导数. ...

  5. ASP 三十二条精华代码

    整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...

  6. 1709 ltsb 内存占用_「正点原子STM32Mini板资料连载」第三十二章 内存管理实验

    1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第三十二章 内存管理实验 上一章,我 ...

  7. 安卓修改电池容量教程_图吧小白教程 篇三十二:手机拆换原装电池教程——替换寿命将届的原厂电池,提升手机续航...

    图吧小白教程 篇三十二:手机拆换原装电池教程--替换寿命将届的原厂电池,提升手机续航 2019-12-05 13:01:04 1点赞 20收藏 1评论 你是AMD Yes党?还是intel和NVIDI ...

  8. 王茂斋拳架_王茂斋太极功(接近传奇,从读懂原著开始;吴式太极拳北派宗师王茂斋,门人杨禹廷、刘晚苍、王培生等名家辈出;《太极功源流支派论》《三十二目》)...

    王茂斋太极功(接近传奇,从读懂原著开始:吴式太极拳北派宗师王茂斋,门人杨禹廷.刘晚苍.王培生等名家辈出:<太极功源流支派论><三十二目>)电子书 ○披露杨禄躔以降之早年太极拳传 ...

  9. 七日杀16.1 服务器修改器,七日杀三十二项32位修改器_七日杀 a16.1b1多功能三十二项修改器-66街机网...

    资源说明: 七日杀 a16.1b1多功能三十二项修改器32位[潇潇蓝龙],由"潇潇蓝龙"制作,一款全功能修改器,基本上是全能力开关,支持任意调整生物伤害.方块距离.生物距离.体力消 ...

  10. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

最新文章

  1. HDU-4738-Caocao's Bridges(tarjan)
  2. request对象方法详解
  3. 我的Blog页面设计
  4. Oracle之索引、权限
  5. 用C/C++实现倒序输出,以12345为例
  6. Windows下图文详解PHP三种运行方式(php_mod、cgi、fastcgi)
  7. IT信息业、金融业从业人员悲歌
  8. 豆瓣、唱吧、爱回收等106款应用被工信部下架
  9. 腾讯、字节跳动展开拉锯战;网易云音乐称酷狗抄袭;谷歌不再开发云游戏 | 极客头条...
  10. c语言中字符怎么表示6,6、C语言中的字符串
  11. 如何使用 MagSafe 外接电池?
  12. [主席树]HDOJ4417 Super Mario
  13. 血管分割技术文献综述
  14. IBM与广东中医院 携手共建智慧医疗
  15. Linux下获取Root权限的方法
  16. python大神年薪_python年薪
  17. 基于jQuery的图片懒加载插件
  18. java web工程中如何添加图片_java web中如何添加图片
  19. 英语 词根 词缀 查询网址
  20. 嵌入式OS的现状、智能的物联网与未来的机器人

热门文章

  1. 使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战
  2. 核磁共振影像数据处理-3-DTI基础、Li‘s have a solution and plan.
  3. 高斯混合模型(GaussianMixture Model, GMM)聚类、可视化最优协方差形式、通过TSNE进行结果可视化分析、抽取核心特征因子
  4. R语言_基本统计分析
  5. 观《超能陆战队》未来的“机器人设计师”的必备装备
  6. 在高中生物里我们提到和遗传有关的物质有染色体,染色质,基因,dna
  7. 大一期末考试,python,测试题,含答案
  8. android 悬停按钮,Android悬浮按钮的使用方法
  9. java怎么接收多选框多数据_表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)...
  10. Python常用函数与技巧总结(三)