中值滤波的代码:
x=0:2047;
a=load('data.txt'); %运行时data.txt文件要放到当前目录(current directory)中
n=5; % n为模板长度,值可以改变
y = medfilt1(a,n);
figure;
subplot(1,2,1);plot(x,a);
xlabel('中值滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('中值滤波后的序列');
均值滤波的代码:
x=0:2047;
a=load('data.txt'); %运行时data.txt文件要放到当前目录(current directory)中
n=5; % n为模板长度,值可以改变
mean = ones(1,n)./n; %mean为1×n的模板,各数组元素的值均为1/n
y = conv(a,mean);
y=y(1:length(y)-length(mean)+1);
figure;
subplot(1,2,1);plot(x,a);
xlabel('均值滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('均值滤波后的序列');
高斯滤波的代码:
x=0:2047;
a=load('data.txt'); %运行时data.txt文件要放到当前目录(current directory)中
gau=[0.0009 0.0175 0.1295 0.3521 0.3521 0.1295 0.0175 0.0009];%标准差为1时的高斯函数一维模板,如果标准差不为1,则要修改模板
y=conv(a,gau);
y=y(1:length(y)-length(gau)+1);
figure;
subplot(1,2,1);plot(x,a);
xlabel('高斯滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('高斯滤波后的序列');
高斯函数的一维模板可以由这个函数得到:fspecial('gaussian', [1 n], sigma)。当标准差sigma是某一固定数字时,存在一个N,对于任意的n>=N,模板都一样,例如:
sigma=1时,gau=[0.0009 0.0175 0.1295 0.3521 0.3521 0.1295 0.0175 0.0009]sigma=0.5时,gau=[0.0090,0.4910,0.4910,0.0090]
这篇博客介绍了如何在MATLAB中实现一维图像处理的三种滤波方法:中值滤波、均值滤波和高斯滤波。通过代码展示了一维滤波的过程,并提及高斯滤波的一维模板可以通过fspecial('gaussian', [1 n], sigma)函数生成,其中当标准差sigma固定时,对于n大于等于某一值N,模板将保持不变。"
123314835,10573694,OpenCV中的线性滤波:均值、方框与高斯滤波,"['计算机视觉', '图像处理', 'OpenCV', '滤波算法', '噪声去除']
1161

被折叠的 条评论
为什么被折叠?



