欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波器-自行选择一种频域的高通滤波器对彩色图像进行滤波操作

程序员文章站 2022-05-21 13:48:47
...

Matlab-频域增强实验-彩色图像的频域滤波器

代码链接:https://download.csdn.net/download/qq_43571150/12033263

问题
自行选择一种频域的高通滤波器对彩色图像进行滤波操作, 取3组不同的参数进行实验,根据实验效果进行参数的比较分析。

结果图像????
数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波器-自行选择一种频域的高通滤波器对彩色图像进行滤波操作
巴特沃兹高通滤波代码????

clc;
clear all;
close all;
J=imread('05.jpg');
if size(J, 3)==3
    J = rgb2gray(J);
end 
subplot(3,3,1);imshow(uint8(J));xlabel('input');

J=double(J);
f=fft2(J);      %采用傅里叶变换
g=fftshift(f);   %数据矩阵平衡
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);
n=2;

d1=5;%截止频率
for i=1:M        %进行巴特沃兹高通滤波和巴特沃兹高通加强滤波
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        if d==0
            h1=0;
            h2=0.5;
        else
            h1=1/(1+(d1/d)^(2*n));
            h2=1/(1+(d1/d)^(2*n))+0.5;
        end
        gg1(i,j)=h1*g(i,j);
        gg2(i,j)=h2*g(i,j);
    end
end
gg1=ifftshift(gg1);
gg1=uint8(real(ifft2(gg1))); 
subplot(3,3,2);imshow(gg1);   %显示巴特沃兹高通滤波
xlabel('巴特沃兹高通滤波 5');
imwrite(gg1,'05 巴特沃兹高通滤波 5.jpg');
gg2=ifftshift(gg2); 
gg2=uint8(real(ifft2(gg2))); 
subplot(3,3,3);imshow(gg2);   %显示巴特沃兹高通加强滤波
xlabel('巴特沃兹高通加强滤波 5');
imwrite(gg2,'05 巴特沃兹高通加强滤波 5.jpg');


d3=50;%截止频率
for i=1:M        %进行巴特沃兹高通滤波和巴特沃兹高通加强滤波
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        if d==0
            h5=0;
            h6=0.5;
        else
            h5=1/(1+(d3/d)^(2*n));
            h6=1/(1+(d3/d)^(2*n))+0.5;
        end
        gg5(i,j)=h5*g(i,j);
        gg6(i,j)=h6*g(i,j);
    end
end
gg5=ifftshift(gg5);
gg5=uint8(real(ifft2(gg5))); 
subplot(3,3,5);imshow(gg5);   %显示巴特沃兹高通滤波
xlabel('巴特沃兹高通滤波 50');
imwrite(gg5,'05 巴特沃兹高通滤波 50.jpg');
gg6=ifftshift(gg6); 
gg6=uint8(real(ifft2(gg6))); 
subplot(3,3,6);imshow(gg6);   %显示巴特沃兹高通加强滤波
xlabel('巴特沃兹高通加强滤波 50');
imwrite(gg6,'05 巴特沃兹高通加强滤波 50.jpg');



d5=250;%截止频率
for i=1:M        %进行巴特沃兹高通滤波和巴特沃兹高通加强滤波
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        if d==0
            h7=0;
            h8=0.5;
        else
            h9=1/(1+(d5/d)^(2*n));
            h10=1/(1+(d5/d)^(2*n))+0.5;
        end
        gg9(i,j)=h9*g(i,j);
        gg10(i,j)=h10*g(i,j);
    end
end
gg9=ifftshift(gg9);
gg9=uint8(real(ifft2(gg9))); 
subplot(3,3,8);imshow(gg9);   %显示巴特沃兹高通滤波
xlabel('巴特沃兹高通滤波 250');
imwrite(gg9,'05 巴特沃兹高通滤波 250.jpg');
gg10=ifftshift(gg10); 
gg10=uint8(real(ifft2(gg10))); 
subplot(3,3,9);imshow(gg10);   %显示巴特沃兹高通加强滤波
xlabel('巴特沃兹高通加强滤波 250');
imwrite(gg10,'05 巴特沃兹高通加强滤波 250.jpg');

相关标签: 数字图像处理