编写用均值滤波去噪的matlab程序,用两种方法实现.(重谢)

编写用均值滤波去噪的matlab程序,用两种方法实现.(重谢),第1张

方法一:filter2

clear all;

I=imread('lenabmp');

%读入预处理图像

imshow(I)

%显示预处理图像

K1=filter2(fspecial('average',3),I)/255;

%进行33均值滤波

K2=filter2(fspecial('average',5),I)/255;

%进行55均值滤波

K3=filter2(fspecial('average',7),I)/255;

%进行77均值滤波

figure,imshow(K1)

figure,imshow(K2)

figure,imshow(K3)

方法二:双循环语句,移动平均法

%均值滤波

clc,clear;

f=imread('lenabmp');

subplot(121),imshow(f),title('原图');

f1=imnoise(f,'gaussian',0002,00008);

%subplot(222),imshow(f1),title('添加高斯噪声图');

k1=floor(3/2)+1;

k2=floor(3/2)+1;

X=f1;

[M,N]=size(X);

uint8 Y=zeros(M,N);

funBox=zeros(3,3);

for i=1:M-3

for j=1:N-3

funBox=X(i:i+3,j:j+3);

s=sum(funBox(:));

h=s/9;

Y(i+k1,j+k2)=h;

end;

end;

Y=Y/255;

subplot(122),imshow(Y),title('均值滤波');

实现图:

% 将以下程序copy到matlab编辑器中运行,或直接在工作区运行即可

fs = 20e3; % 采样频率

fn = 3e3; % 固有频率

y0 = 5; % 位移常数

g = 01; % 阻尼系数

T = 001; % 重复周期

N = 4096; % 采样点数

NT = round(fsT); % 单周期采样点数

t = 0:1/fs:(N-1)/fs; % 采样时刻

t0 = 0:1/fs:(NT-1)/fs; % 单周期采样时刻

K = ceil(N/NT)+1; % 重复次数

y = [];

for i = 1:K

y = [y,y0exp(-g2pifnt0)sin(2pifnsqrt(1-g^2)t0)];

end

y = y(1:N);

Yf = fft(y); % 频谱

figure(1)

plot(t,y);

axis([0,inf,-4,5])

title('轴承故障仿真信号时域波形图')

xlabel('Time(s)')

ylabel('Amplitude')

figure(2)

f = 0:fs/N:fs-fs/N;

plot(f/1e3,abs(Yf));

xlabel('Frequency(KHz)');

ylabel('\itY\rm(\itf\rm)')

title('轴承故障仿真信号幅度谱图')

%源代码来自于在《MATLAB环境下基于小波变换的图像去噪》刘智clear;clc % 清理工作空间

load wbarb; % 装载原始图像

subplot(221); % 新建窗口

image(X); % 显示图像

colormap(map); % 设置色彩索引图

title('原始图像'); % 设置图像标题

axis square; % 设置显示比例,生成含噪图像并图示

init=2055615866; % 初始值

randn('seed',init); % 随机值

XX=X+8randn(size(X)); % 添加随机噪声

subplot(222); % 新建窗口

image(XX); % 显示图像

colormap(map); % 设置色彩索引图

title('含噪图像'); % 设置图像标题

axis square; %用小波函数coif2 对图像XX 进行2 层分解

[c,l]=wavedec2(XX,2,'coif2'); % 分解

n=[1,2]; % 设置尺度向量

p=[1028,2408]; % 设置阈值向量,对高频小波系数进行阈值处理

%nc=wthcoef2('h',c,l,n,p,'s');

%nc=wthcoef2('v',c,l,n,p,'s');

nc=wthcoef2('d',c,l,n,p,'s');

X1=waverec2(nc,l,'coif2'); % 图像的二维小波重构

subplot(223); % 新建窗口

image(X1); % 显示图像

colormap(map); %设置色彩索引图

title('第一次消噪后的图像'); % 设置图像标题

axis square; % 设置显示比例,再次对高频小波系数进行阈值处理

%mc=wthcoef2('h',nc,l,n,p,'s');mc=wthcoef2('v',nc,l,n,p,'s');

mc=wthcoef2('d',nc,l,n,p,'s');

X2=waverec2(mc,l,'coif2'); % 图像的二维小波重构

subplot(224); % 新建窗口

image(X2); % 显示图像

colormap(map); % 设置色彩索引图

title('第二次消噪后的图像'); % 设置图像标题

axis square; % 设置显示比例

以上就是关于编写用均值滤波去噪的matlab程序,用两种方法实现.(重谢)全部的内容,包括:编写用均值滤波去噪的matlab程序,用两种方法实现.(重谢)、使用matlab对故障轴承振动信号去噪、求小波变换图像降噪的matlab代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10136102.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存