腐蚀:
  Erosion is the sister of dilation. It computes a local minimum over the area of given kernel.

膨胀:
  compute the maximal pixel value overlapped by B and replace the image pixel in the anchor point position with that maximal value.


代码示例

#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"using namespace cv;Mat src, erosion_dst, dilation_dst;int erosion_elem = 0;
int erosion_size = 0;
int dilation_elem = 0;
int dilation_size = 0;
int const max_elem = 2;
int const max_kernel_size = 21;void Erosion(int, void*);
void Dilation(int, void*);int main(int, char** argv)
{const char* filename = "../data/lena.jpg";src = imread(filename, IMREAD_COLOR);if (src.empty()){   return -1;}namedWindow("Erosion Demo", WINDOW_AUTOSIZE);namedWindow("Dilation Demo", WINDOW_AUTOSIZE);moveWindow("Dilation Demo", src.cols, 0);createTrackbar("Element", "Erosion Demo",                                   // 腐蚀方法&erosion_elem, max_elem, Erosion);createTrackbar("Kernel", "Erosion Demo",                                    // 腐蚀掩模大小&erosion_size, max_kernel_size, Erosion);   createTrackbar("Element", "Dilation Demo",                                  // 膨胀方法&dilation_elem, max_elem, Dilation);createTrackbar("Kernel", "Dilation Demo",                                   // 膨胀掩模大小&dilation_size, max_kernel_size, Dilation);Erosion(0, 0);Dilation(0, 0);waitKey(0);return 0;
}void Erosion(int, void*)
{int erosion_type = 0;if (erosion_elem == 0)      { erosion_type = MORPH_RECT; }else if (erosion_elem == 1) { erosion_type = MORPH_CROSS; }else if (erosion_elem == 2) { erosion_type = MORPH_ELLIPSE; }Mat element = getStructuringElement(erosion_type, Size(2 * erosion_size + 1, 2 * erosion_size + 1),   Point(erosion_size, erosion_size));erode(src, erosion_dst, element);                                           // 腐蚀imshow("Erosion Demo", erosion_dst);
}void Dilation(int, void*)
{int dilation_type = 0;if (dilation_elem == 0)      { dilation_type = MORPH_RECT; }            // 矩形else if (dilation_elem == 1) { dilation_type = MORPH_CROSS; }           // 十字型else if (dilation_elem == 2) { dilation_type = MORPH_ELLIPSE; }         // 椭圆Mat element = getStructuringElement(dilation_type, Size(2 * dilation_size + 1, 2 * dilation_size + 1), Point(dilation_size, dilation_size));dilate(src, dilation_dst, element);                                         // 膨胀imshow("Dilation Demo", dilation_dst);
}

运行结果


【OpenCV】腐蚀膨胀相关推荐

  1. matlab 腐蚀算法,【zz】matlab 腐蚀膨胀算法

    1.图像膨胀的Matlab实现: 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象.结构元素对象可以是strel函数返回的对象,也可 ...

  2. OpenCV腐蚀和膨胀Eroding and Dilating

    OpenCV腐蚀和膨胀Eroding and Dilating 腐蚀和膨胀Eroding and Dilating 目标 形态运算 膨胀 侵蚀 代码 解释 腐蚀功能 膨胀功能 结果 腐蚀和膨胀Erod ...

  3. OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()

    OpenCV学习笔记(七):形态学(morpholgy):腐蚀/膨胀:enrode(),dilate() 数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上 ...

  4. python opencv 图像膨胀

    python opencv 图像膨胀 代码: import cv2 import numpy as np # 图像膨胀 def dilate_img(img,a,iterations):kernel ...

  5. halcon区域腐蚀膨胀算子_OpenCV 图像处理之膨胀与腐蚀

    1.什么是膨胀与腐蚀 膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可.但是更形象的话就是"增肥"与"减肥". 它们的用途就是用来处理图形问题上.总结 ...

  6. 图像的平滑滤波、边缘检测、阈值化、腐蚀膨胀等原理介绍

      一幅图像可以定义为一个二维函数f(x,y)f(x,y)f(x,y),其中xxx和yyy是空间/平面坐标,而在任何一对空间坐标(x,y)(x,y)(x,y)处的幅值fff称为图像在该点处的强度或灰度 ...

  7. C语言二值图的腐蚀膨胀及开闭运算

    (M2C系列)C语言二值图的形态学腐蚀膨胀及开闭运算 一.结构元 二.腐蚀 三.膨胀 四.开闭运算 五.其他 by HPC_ZY 由于剧情,需要纯C(不用三方库)实现图像算法.但作为一名MATLAB老 ...

  8. FPGA实现图像二值形态学滤波——腐蚀膨胀

    一.二值图像 二值图像(Binary Image)是指图像上的每一个像素只有两种可能的取值或灰度等级状态.简言之,在图像中灰度等级只有两种0或255(黑或白). 二.形态学 形态学,即数学形态学(Ma ...

  9. Open_CV形态学运算专题 (腐蚀膨胀、开闭运算、梯度运算、顶帽运算黑帽运算 )【Python-Open_CV系列(十)】

      Open_CV形态学运算专题 之 腐蚀&膨胀.开&闭运算.梯度运算.顶帽运算黑帽运算               [Python-Open_CV系列(十)]   文章目录 1. 腐 ...

  10. matlab膨胀检测,matlab腐蚀膨胀算法

    Matlab图像处理知识(四) ? 膨胀 ? 腐蚀 ? 开运算闭运算 ? 击中击不中 ? 结合进行图像预处理 膨胀 ? 原理:膨胀是在图像中"增长"或"变粗"的 ...

最新文章

  1. 谷歌全新轻量级新模型ALBERT刷新三大NLP基准
  2. EngJS(超轻量) 中数据双向绑定如何使用
  3. 顺序查找计时函数C语言,用C语言编二分查找
  4. 深度神经网络的分布式训练概述:常用方法和技巧全面总结
  5. Cisco对中国CCIE认证下重手了
  6. 事务流程java怎么实现_使用队列和事务实现采集数据实例流程
  7. python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...
  8. 38. 后台模块开发(3)
  9. Java中多态的实例
  10. 39. 二叉树的深度(C++版本)
  11. 新手学c还是java_80x86汇编小站,新手学c还是java
  12. 计算两向量的旋转角(转)
  13. 蚂蚁支付宝小程序开发从零开始[含demo]
  14. Android最新技术-Android11周
  15. 江苏咪咕MGV3000_YST代工_S905L3_线刷固件包
  16. ibm邮件怎么撤回_请问LotusNotes具备发出邮件后撤回 – 手机爱问
  17. 乾坤物联-UWB定位基站和定位信标的区别
  18. 关于计算机的手抄报知识,电子手抄报
  19. <计算机视觉 六> 深度学习目标检测模型的评估标准
  20. 类在c++中的初步运用

热门文章

  1. python怎么操作_python怎么操作mysql
  2. pytorch学习笔记(二十六):NIN
  3. AcWing1074. 二叉苹果树(树形DP)题解
  4. PicoDet论文译读笔记
  5. MQTT通信协议的简介、特点及实现原理 - 第1章
  6. 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
  7. Redis数据结构、持久化、缓存技术和集群详解
  8. Scrum立会报告+燃尽图(Beta阶段第一次)
  9. NOIP模拟 整数划分(数论,质因数分解,状压DP)
  10. k64 datasheet学习笔记3---Chip Configuration之System modules