说明
这套算法是我自己构思出来的,用来减薄Sobel算子提取的边缘线,不知道业内存不存在我这样的算法,我先姑且叫它“夹心减薄算法”。
通常,Sobel等边缘提取算法,大多是根据像素梯度来获取边缘的,而大多边缘均有一个梯度渐变的过程,这导致Sobel算子计算出来的边缘都有些厚度。
且,经过少量样本的对比,经常能发现图像的真实边缘,也往往就存在于厚边线中心位置。
为了能提取到细窄且尽量逼近真实边缘的轮廓,我采用了边缘线实体两侧内夹的方法来获取。
算法思想
1:用一个阀值,滤去Sobel算子计算后的底纹背景,留取边缘线。
2:估计Sobel算子获取的边线最大厚度,设置算法所允许的最大夹口尺寸
3:根据算法扫描的方向,确定四个前行夹板
4:夹板遇到Sobel轮廓边缘,通过夹口将边线夹薄至边线中心
C# 实现代码
public
使用局限
下面的例子,说明 四方向与八方向 计算效果一样。
该减薄算法也有其明显的使用局限性,对于过厚的边缘线会产生截断现象,这是后期运用时需要注意的,也是算法需要改善的地方