halcon中的高斯平滑算子原理分析

本文详细分析了halcon中的高斯平滑算子,探讨了一维数据滤波原理,讲解了如何计算高斯滤波器的权值,并通过实例展示了如何根据Sigma自动确定滤波器尺寸。在确定尺寸时,提出了一个通过σ除以0.256479361来估算滤波器宽度的方法,但作者对这个常数的具体来源寻求解答。


前言

halcon中提供了灰度卡尺测量工具,在图像的测量、定位、计数等方面经常会用到,因此打算在openCV项目中添加类似的卡尺工具。在halcon的卡尺测量工具中,有一项平滑(Sigma)系数,是对灰度投影后生成的一维数组进行高斯平滑,halcon会根据该系数的大小,自动计算出一个适合的滑窗宽度进行高斯平滑。针对halcon如何实现数据的高斯平滑,已经如何自动计算出适合的滑窗宽度进行了分析和测试,现将过程进行记录,以免遗忘。同时也把自己目前没想明白的问题贴出来,期待大家的指导。


一、一维数据滤波原理

对一组一维数据依据某种规则进行变换处理的过程就是数据滤波,这个规则就可以认为是滤波器的类型。现以均值滤波为例进行说明,对含有10个数据的一维数组[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]进行均值滤波,滤波器的滑窗宽度设为3,对边缘空白区域进行对称位置镜像补值。对数组的每一个数据进行处理:
{1(边缘处补第1位数据右侧的数据)+0(数组第1个元素)+1(数组第2元素)} / 3(滑窗宽度)=(1+0+1)* 1/3= 2/3
{0(数组第1个元素)+1(数组第2个元素)+2(数组第3元素)} / 3(滑窗宽度)=(0+1+2)* 1/3= 1
{1(数组第1个元素)+2(数组第2个元素)+3(数组第3元素)} / 3(滑窗宽度)=(1+2+3)* 1/3= 2
… …
{7(数组第8个元素)+8(数组第9个元素)+9(数组第10元素)} / 3(滑窗宽度)=(7+8+9)* 1/3= 8
{8(数组第9个元素)+9(数组第10个元素)+8(边缘处补第10位数据左侧的数据)} / 3(滑窗宽度)=(8+9+8)* 1/3= 25/3
经过均值滤波后最终得到的结果为[ 2/3 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 25/3 ],如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值