c#图像用内存法实现浮雕处理_C# 边缘提取后的边线减薄

说明

这套算法是我自己构思出来的,用来减薄Sobel算子提取的边缘线,不知道业内存不存在我这样的算法,我先姑且叫它“夹心减薄算法”。

通常,Sobel等边缘提取算法,大多是根据像素梯度来获取边缘的,而大多边缘均有一个梯度渐变的过程,这导致Sobel算子计算出来的边缘都有些厚度。

且,经过少量样本的对比,经常能发现图像的真实边缘,也往往就存在于厚边线中心位置。

为了能提取到细窄且尽量逼近真实边缘的轮廓,我采用了边缘线实体两侧内夹的方法来获取。

算法思想

1:用一个阀值,滤去Sobel算子计算后的底纹背景,留取边缘线。

2:估计Sobel算子获取的边线最大厚度,设置算法所允许的最大夹口尺寸

3:根据算法扫描的方向,确定四个前行夹板

4:夹板遇到Sobel轮廓边缘,通过夹口将边线夹薄至边线中心

C# 实现代码

public 

265bbca7609a3f5babf7acfee28c45f5.png
经过“夹心减薄算法”处理后的Sobel边缘

6fea3f2d8202a1650280fd5b2f41f133.png
Sobel 边缘提取的原始边缘

使用局限

下面的例子,说明 四方向与八方向 计算效果一样。

该减薄算法也有其明显的使用局限性,对于过厚的边缘线会产生截断现象,这是后期运用时需要注意的,也是算法需要改善的地方

d02e5845bbb9f08cc5d8a8a3e7d2d9a3.png
四方向 树叶简笔画减薄(笔画减薄前,需要图像做反色处理)

4d8652534e4f26b5c47a188303f34e09.png
八方向 树叶简笔画减薄(笔画减薄前,需要图像做反色处理)

1b51db91b71ab8af93eeb3e47e6b412d.png
2遍 5x5 高斯模糊处理,并提高夹心算法阀值后的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值