第6章 图像处理
6.3 形态学滤波(1):腐蚀与膨胀
6.3.1 形态学概述
1.数学形态学(Mathematical morphology):建立在格论和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论。
2.基本运算:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等
3.基本形态学操作:膨胀(dilate)、腐蚀(erode)
6.3.2 膨胀
1.求局部最大值的操作,数学角度:将图像与核进行卷积,即计算核覆盖区域的像素点最大值,并把最大值赋值给参考点指定像素,这样就会使图像中高亮区域逐渐增长。
2.核:带有一个参考点(锚点,anchor point),任意形状大小的区域。
3.膨胀数学表达式:


4.封装函数:dilate函数
5.函数原型:
void dilate(InputArray src,OutputArray dst,InputArray kernel,Point anchor=Point(-1,-1),int iteration=1,int borderType=BORDER_CONSTANT,const Scaler& borderValue=morphologyDefaultBorderValue());
6.参数说明:
(1)输入图像
(2)目标图像
(3)膨胀操作的核,为NULL时表示使用参考点位于中心3*3的核,常使用getStructuringElement返回指定形状和大小的结构元素
1)形状:矩型:MORPH_RECT,交叉型:MORPH_CROSS,椭圆形:MORPH_ELLIPSE
2)内核尺寸
3)锚点位置
4)调用示例:
Int g_nStructElementSize = 3;
Mat element = getStructuringElement(MORPH_RECT, Size(2*g_nStructuringElement+1, 2*g_nStructElementSize+1), Point(g_nStructElementSize,g_nStructElementSize ));
(4)锚的位置,默认(-1,-1)表示位于中心
(5)迭代使用dilate()函数的次数,默认1
(6)用于推断图像外部像素的某种边界模式,默认值BORDER_DFALUT
(7)当边界为常数时的边界值,默认值morphologyDefalutBorderValue()
6.3.3 腐蚀
1.求局部最小值的操作,将图像与核进行卷积,即计算核覆盖区域的像素点最小值,并赋值给参考点指定的像素,这样就会使图像中高亮区域逐渐增长。
2.腐蚀的数学表达式:

本文是《OpenCV3编程入门》学习笔记的第六章第三部分,主要介绍了形态学滤波的基础知识,包括腐蚀和膨胀的概念、数学表达式以及在OpenCV中的实现方法。腐蚀操作通过寻找局部最小值来减小图像中的高亮区域,而膨胀则是通过寻找局部最大值来扩大这些区域。文章详细讲解了膨胀和腐蚀的函数原型及参数说明,并提供了调用示例。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



