Matlab低通滤波器的使用--频域图像增强实验-创新互联

//添加噪声
C=imread('');
image=double(C);//转换成double
[h,w]=size(image);
image2=uint8(zeros(h,w));
for i=1:h
    for j=1:w
        image2(i,j)=image(i,j);
        if rand(1,1)>=0.99 //大于该值产生焦点
            if rand(1,1)>=0.5 //大于0.5产生白点
            image2(i,j)=(255);
            else
            image2(i,j)=(0);//否则产生黑点
            end
        end
    end
end
//高斯低通滤波器
f1=im2double(image2);
D0=40;
g1=fft2(f1);//傅立叶变换
g1=fftshift(g1);//转换数据矩阵
[M1,N1]=size(g1);//如果图像f(x,y)的尺寸为M×N,则对(-1)(x+y)f(x,y)进行傅立叶变换后的频率平面的原点在(M/2,N/2)
m1=fix(M1/2);
n1=fix(N1/2);
s1=zeros(M1,N1);
for i=1:M1
   for j=1:N1
        d=sqrt((i-m1)^2+(j-n1)^2);//D(u,v)为频率平面从原点到点(u,v)的距离
        h1=exp((-d^2)/(2*(D0^2)));//计算高斯低通滤波器传递函数
        s1(i,j)=h1*g1(i,j);
   end
end
y1=ifft2(ifftshift(s1));
y1=log(1+abs(y1));
//巴特沃斯低通滤波器
f2=im2double(image2);
g2=fft2(f2);
g2=fftshift(g2);
n0=2;
[M2,N2]=size(g2);
m2=fix(M2/2);
n2=fix(N2/2);
s2=zeros(M2,N2);
for i=1:M2
   for j=1:N2
        d=sqrt((i-m2)^2+(j-n2)^2);
        h2=1/(1+(d/D0)^(2*n0));//计算巴特沃斯低通滤波器传递函数
        s2(i,j)=h2*g2(i,j);
 
   end
end
//绘画
figure;
subplot(2,2,1);imshow(C);
title('原图');
subplot(2,2,2);imshow(imamge2);
title('椒盐噪声后');
y2=ifft2(ifftshift(s2));
y2=log(1+abs(y2));
//如果图像进行傅里叶转换后立即用imshow函数显示,则在命令行可能会显示:Warning: Displaying real part of complex input(警告: 显示复数输入项的实部)。这是因为经过傅里叶变换后的图像矩阵大多是复数矩阵,包含实部和虚部。
//此时如要显示图像则需要先用abs取复数矩阵的模,再进行显示
subplot(2,2,3);imshow(y1,[]);
//当图像是double类型时要使用imshow(I,[])来根据数据矩阵的数值范围自动设置灰度图像显示范围
title('高斯低通滤波器处理后');
subplot(2,2,4);imshow(y2,[]);
title('巴特沃斯低通滤波器处理后');

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

创新互联专注于海淀企业网站建设,成都响应式网站建设,购物商城网站建设。海淀网站建设公司,为海淀等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
名称栏目:Matlab低通滤波器的使用--频域图像增强实验-创新互联
本文地址:http://scyanting.com/article/jihhp.html