MATLAB 画像処理学習 - ハイパス フィルター (周波数領域フィルター (2))

目次

1. はじめに

ハイパスフィルターの原理

効果

2. 理想的なハイパスフィルター

3.バターワースハイパスフィルター

コード (バターワース ハイパス フィルター)

4. ガウスハイパスフィルター


1. はじめに

ハイパスフィルターの原理:

低周波成分を減衰または拒否し、高周波成分を通過させます。

効果:

画像を鮮明にし、画像の境界を強調表示します。

(注:一般的に、ハイパスフィルタリングはノイズ抑制に効果がありません。単にハイパスフィルタリングを使用すると、深刻なノイズのために画質を十分に改善することが困難になる可能性があります。画像のディテールを強調し、ノイズを抑制するために、高周波強調フィルタリング、実際にはハイパス フィルタとオールパス フィルタで構成され、ハイパス フィルタリングに基づいて低周波情報を保持できます)

2. 理想的なハイパスフィルター

式を生成します:

 (D0 は理想的なハイパス フィルターのカットオフ周波数です)

 

3.バターワースハイパスフィルター

式を生成します:

 (D0 はバターワース ハイパス フィルターのカットオフ周波数、n はバターワース フィルターの次数で、フィルターの急峻さを制御するために使用されます)

コード (バターワース ハイパス フィルター):

clear all;clc;
I = imread('D:\resource_photo\1(1).png');

figure(1);
subplot(221),imshow(I);
title('原始图像');

k=fft2(im2double(I));
s=fftshift(fft2(im2double(I)));

subplot(222),imshow(k);
title('二维傅里叶变换后图像');
subplot(223),imshow(log(abs(s)));
title('中心频谱图像')

[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d0=50; % 将理想高通滤波器的截止频率D0设置为50
for i=1:a %双重for循环计算频率点(i,j)与频域中心的距离D(i,j)=sqrt((i-round(a/2)^2+(j-round(b/2)^2))
    for j=1:b 
        distance=sqrt((i-a0)^2+(j-b0)^2);
        if distance<=d0  % 根据理想高通滤波器产生公式,当D(i,j)<=D0,置为0
            h=0;
        else
            h=1;        % 根据理想高通滤波器产生公式,当D(i,j)>D0,置为1
        end
        s(i,j)=h*s(i,j);% 频域图像乘以滤波器的系数
    end
end
% real函数取元素的实部
s=real(ifft2(ifftshift(s)));% 最后进行二维傅里叶反变换转换为时域图像
subplot(224),imshow(s,[]);
title('理想高通滤波所得图像');

 操作結果:

 

4. ガウスハイパスフィルター

式を生成します:

 (D0 はガウス ハイパス フィルターのカットオフ周波数です)

 

 

おすすめ

転載: blog.csdn.net/weixin_52135595/article/details/127288956