- 腐蚀
- 膨胀
- 开运算
- 闭运算
- 关于核的一点补充
腐蚀
-
计算原理
根据核n的大小,生成一个nxn的矩阵,矩阵在图像中滑动,将矩阵中心的像素值替换为矩阵里的最小值。 -
原理图解
-
例图
处理前后对比
原图,测量的宽度为98piexl
腐蚀,经过腐蚀后,灰色矩形块外的亮斑变小了。
可以看到腐蚀后,灰度矩形外的亮斑变小了,亮斑变小多少取决于设置的核的大小能否覆盖亮斑的面积,在例图中使用的是3x3的核,所以膨腐蚀后特征边上下都往内收缩了1个像素,测量出来的宽度总共少2个像素。
-
不同核大小例图
核大小5x5
核大小7x7
核大小越大,图像收缩越明显,形变越彻底,失真越彻底。
备注
- 腐蚀可用处剔除局部亮斑的干扰
- 腐蚀会导致目标特征边的宽度变小,导致失真,一般会搭配膨胀一起使用。
膨胀
-
计算原理
根据核n的大小,生成一个nxn的矩阵,矩阵在图像中滑动,将矩阵中心的像素值替换为矩阵里的最大值。 -
图解原理
3.例图
处理前后对比
腐蚀前的原图,此时测量宽度为98piexl
膨胀后的图片,此时测量宽度为100piexl,
可以看到膨胀后,灰度矩形内的暗斑变小了,暗斑变小多少取决于设置的核的大小能否覆盖亮斑的面积,在例图中使用的是3x3的核,所以膨胀后特征边上下都往外膨胀了1个像素,测量出来的宽度总共多2个像素。
4.不同核大小例图
核大小为5x5
核大小为7x7
核越大,特征边失真越厉害,同时亮斑区域越大
备注
- 膨胀可用处剔除局部黑斑点的干扰
- 膨胀会导致目标特征边的宽度变大,导致失真,一般会搭配腐蚀一起使用。
开运算
-
概述
先进行腐蚀再进行膨胀,用于先将低亮部,如杂斑,再提高亮度对比度,图像受核大小影响,核越大图像越模糊。 -
例图
原图 如图所示,此时测量的宽度为98.004piexl
腐蚀-经过腐蚀后,亮的干扰点被消除,暗的特征点被放大,此时因为亮的区域腐蚀了,测量的宽度也变小了。
开运算-在腐蚀的基础上进行膨胀,因为腐蚀后失真的特征边又通过同样的方式膨胀还原,所以特征边的宽度又回到了原本的宽度,,整个流程逻辑为先腐蚀消掉亮部干扰,特征边也因为腐蚀受影响->再膨胀还原被腐蚀的特征边
闭运算
1.概述
先膨胀再腐蚀,先把暗部斑点提亮,再把降低暗部亮度,图像受核大小影响,核越大图像越模糊。
2.例图
原图 此时测量宽度为98piexl
膨胀 经过膨胀后,灰色矩形里的黑色斑点向周边取最大值,黑色斑点面积变小,同时测量的宽度因为往外膨胀,所以上下各多了一个像素,
闭运算-在膨胀的基础上进行腐蚀,原本因为膨胀往外扩的特征边经过腐蚀后又回到了原本的位置,最后测量的宽度保持不变,整个流程为先膨胀消掉暗部干扰,特征边也因为膨胀受影响->再腐蚀还原被膨胀的特征边
基于核的算法补充
图像中很多预处理方法其实都是基于核这个概念进行的,如上面提到的膨胀与腐蚀都是基于nxn的核进行的算法计算,如果大家对于核已经理解了那么可以在这个基础殊途同归了解更多的算法,如:
- 中值滤波
中值滤波就是对NxN的核内的像素灰度进行排序,然后取序列的中值给中间的像素(默认情况下是给中间的像素,实际可以设置锚点的位置,将锚点设置在非中间位置时,图像会发生一定方向的偏移) - 均值滤波
对NxN的核内的像素取平均值赋值给中间的像素或者锚点的位置。 - 高斯滤波
对NxN的核内的像素先采用高斯函数进行计算不同位置的权重,再进行归一化计算,再根据每个像素归一化后的不同比例*像素,最后所有像素相加赋值给中间的像素或者锚点的位置,本质是一种加权平均操作。 - 其他
基于核的概念可以自己试着去了解其他的算法,应该会变得比较好理解了。