测试smooth_funct_1d_gauss

测试使用 smooth_funct_1d_gauss 算子 sigma=1 对 数组 GrayValues:=[1,2,3,4,5,6,7,8,9,10]进行高斯平滑

结果为

Y0:=[1.72626, 2.1253, 3.00878, 4.0, 5.0, 6.0, 7.0, 7.99122, 8.8747, 9.27374]

我按照自己的理解得到的结果

Y1:=[1.72669, 2.12574, 3.00887, 4.0, 5.0, 6.0, 7.0, 7.99113, 8.87426, 9.27331]

和halcon的结果基本很接近,为什么4.0, 5.0, 6.0, 7.0 这四个数看上去完全相等,其他的小数第三位后就不同,不知道什么原因,是计算有误吗?记录下:

GrayValues:=[1,2,3,4,5,6,7,8,9,10]
ii:=[0,1,2,3,4,5,6,7,8,9]
create_funct_1d_array (GrayValues, Function)
smooth_funct_1d_gauss (Function, 1, SmoothedFunction)
get_y_value_funct_1d (SmoothedFunction, ii, 'constant', Y0)
kernel:=[]
sigma:=1.0
summ:=0.0
for Index := 0 to 6 by 1
    kernel[Index]:=exp(-0.5*(Index-3)*(Index-3)/sigma/sigma)
    summ:=summ+kernel[Index]
endfor

for Index := 0 to 6 by 1
    kernel[Index]:=kernel[Index]/summ
endfor
GrayValues:=[4,3,2,1,2,3,4,5,6,7,8,9,10,9,8,7]
Y1:=[]
for Index := 3 to |GrayValues|-4 by 1
    v:=0
    m:=0
    for j := Index-3 to Index+3 by 1
        v:=v+kernel[m]*GrayValues[j]
        m:=m+1
    endfor
    Y1[Index-3]:=v
endfor

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值