由于项目上要用到平滑一维数组数据,参考Matlab smooth函数转成c++代码
//x,g均为数组,具体内容略
plot(x,g);hold on,plot(x,smooth(g,50),‘r‘);
z1= (g1-smooth(g1,50)‘); figure,plot(x,z1,‘.-‘)
蓝色为平滑前,红色为平滑后
为了要找到缺陷,即灰度值突变很大地方,可以平滑前后相减,注意这里平滑窗宽尽量选大,选择原则是较小甚至不影响缺陷突变的地方
平滑前后相减
举例
例如g=[1 2 1 5 1 1 1 3 1 1 1]
smooth(g,5)‘
ans =
1.0000 1.3333 2.0000 2.0000 1.8000 2.2000 1.4000 1.4000