【OpenCV C++20 学习笔记】腐蚀和膨胀
创始人
2024-11-14 09:38:10
0

腐蚀和膨胀

  • 形态学原理
    • 膨胀
    • 腐蚀
  • 代码实现
    • 膨胀函数
    • 腐蚀函数
    • 运行结果

形态学原理

腐蚀和膨胀通常有以下用途:

  • 去除噪音
  • 分离或合并图像中的元素
  • 找出图片上的强度的极大值区域和极小值区域
    以下图作为原始图片:

原始图片

膨胀

用核 B B B来扫描图像 A A A,核 B B B中有个锚点,通常是核的中心。在扫描图像的时候,被 B B B覆盖的 A A A的区域上的最大值将会被赋予核 B B B的锚点。这样图片中像素值高的区域(亮的区域)将会扩大,这就是“膨胀”。如下图所示:
膨胀变换示意图

用数学公式来表达就是:
d s t ( x , y ) = m a x ( x ′ , y ′ ) : e l e m e n t ( x ′ , y ′ ) ≠ 0 s r c ( x + x ′ , y + y ′ ) dst(x,y)=max_{(x', y'):element(x',y')\neq0}src(x+x',y+y') dst(x,y)=max(x′,y′):element(x′,y′)=0​src(x+x′,y+y′)

  • d s t ( x , y ) dst(x,y) dst(x,y)为 x x x行 y y y列的像素值的膨胀结果
  • s r c ( x , y ) src(x,y) src(x,y)为 x x x行 y y y列的原始像素值
  • x ′ x' x′和 y ′ y' y′分别为最大值在核中的坐标

膨胀后的效果:
膨胀后的效果

腐蚀

腐蚀的操作与膨胀正好相反,它将核 B B B中的最小值赋予核的锚点。这样像素值小的区域(暗的区域)就会变多。如下图所示:
腐蚀变换示意图

用数学公式表达如下:
d s t ( x , y ) = m i n ( x ′ , y ′ ) : e l e m e n t ( x ′ , y ′ ) ≠ 0 s r c ( x + x ′ , y + y ′ ) dst(x,y)=min_{(x', y'):element(x',y')\neq0}src(x+x',y+y') dst(x,y)=min(x′,y′):element(x′,y′)=0​src(x+x′,y+y′)

  • d s t ( x , y ) dst(x,y) dst(x,y)为 x x x行 y y y列的像素值的膨胀结果
  • s r c ( x , y ) src(x,y) src(x,y)为 x x x行 y y y列的原始像素值
  • x ′ x' x′和 y ′ y' y′分别为最大值在核中的坐标

腐蚀效果如下:
腐蚀后的效果

代码实现

在OpenCV中,在进行膨胀和腐蚀操作前都必须先创建用来扫描原始图片的“核”,这就要用到getStructuringElement()函数:

Mat element = getStructuringElement(MORPH_RECT,		//核的形态 									Size(3, 3),		//核的尺寸,默认3*3 									Point(-1, -1));	//核的锚点,(-1,-1)表示核的中心 

其中第1个参数,有以下枚举类型:

  • MORPH_RECT:矩形
  • MORPH_CROSS:十字形
  • MORPH_ELLIPSE:椭圆形

这样就会自动创建全是1的一个卷积核矩阵,如下图:
卷积核矩阵

接下来就可以进行膨胀和腐蚀操作了:

膨胀函数

膨胀函数非常简单:

dilate(image,	//原图 	DImage,		//目标图 	element);	//核 

腐蚀函数

腐蚀函数也非常简单:

erode(image,	//原图 	EImage,		//目标图 	element);	//核 

运行结果

中间是原图,左边是膨胀,右边是腐蚀:
膨胀和腐蚀对比原图

相关内容

热门资讯

辅助了解!人人燕赵辅助(辅助)... 您好,人人燕赵辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
辅助了解!情怀莆仙吹牛脚本(辅... 辅助了解!情怀莆仙吹牛脚本(辅助)捉住捣蛋鸡都是存在有辅助挂(哔哩哔哩)1、超多福利:超高返利,海量...
详细了解!新518互游插件(辅... 详细了解!新518互游插件(辅助)白金岛歪胡子竟然是真的辅助下载(哔哩哔哩)运新518互游插件辅助工...
教你了解!宝宝吃吃吃外g挂(辅... 教你了解!宝宝吃吃吃外g挂(辅助)开心娱乐一直真的是有辅助软件(哔哩哔哩)1、许多玩家不知道宝宝吃吃...
分享了解!微信开心泉州辅助(辅... 分享了解!微信开心泉州辅助(辅助)怀远麻将本来是真的辅助器(哔哩哔哩)1、实时微信开心泉州辅助透视辅...
关于了解!冰球突破辅助软件(辅... 关于了解!冰球突破辅助软件(辅助)和和嫩江麻将果然是有辅助神器(哔哩哔哩)1.冰球突破辅助软件 选牌...
科普了解!川娱竞技血战辅助器(... 科普了解!川娱竞技血战辅助器(辅助)中至鹰潭麻将原来是真的辅助平台(哔哩哔哩)1、玩家可以在川娱竞技...
推荐了解!微乐小程序辅助(辅助... 推荐了解!微乐小程序辅助(辅助)聚游广东麻将本来有挂辅助软件(哔哩哔哩)1、不需要AI权限,帮助你快...
必备了解!皮皮游戏辅助器(辅助... 必备了解!皮皮游戏辅助器(辅助)盛世2果然有挂辅助安装(哔哩哔哩);1、玩家可以在皮皮游戏辅助器线上...
透视了解!三哥玩透视辅助(辅助... 透视了解!三哥玩透视辅助(辅助)米乐互娱竟然是真的辅助脚本(哔哩哔哩)进入游戏-大厅左侧-新手福利-...