Matlab Learning 12 - 画像処理のための画像強化


序文

画像強調の基本的な考え方は、
特定の周波数を通過させ(一部の周波数成分を保持し)、他の周波数を制限または低減する(一部の周波数成分を除去する)ことです。
伝達関数の品質がフィルターの品質の鍵となります。
フィルタリングの特性、特に除去または保持される周波数成分に応じて、周波数領域の強調方法は次のように分類できます。

- ローパス フィルタリング
基本原理:
画像内の低周波成分を保持し、高周波成分を除去します。
機能:
ノイズの影響を除去または弱め、エッジ輪郭をぼかします。これは画像平滑化処理技術に属します。画像内のエッジとノイズは、画像のフーリエ スペクトルの高周波部分に対応しているためです。
含まれるもの:
理想ローパス フィルター (ILPF)
バターワース ローパス フィルター (BLPF)
指数ローパス フィルター (ELPF)
ラダー ローパス フィルター (TLPF)
ガウス ローパス フィルター (GLPF)
- ハイパス
の基本原理
、画像内の高周波成分を保持し、低周波成分を除去することです。
機能:
画像鮮鋭化処理技術に属するオブジェクトのエッジ輪郭を強調表示します。
画像内のエッジは、画像のフーリエ スペクトルの高周波部分に対応するためです。
効果:
オブジェクトのエッジはシャープになりますが、滑らかな領域のグレー レベルは弱められるか、暗くなり、さらには黒に近くなります。
画像内のエネルギーのほとんどは低周波成分に集中しており、ハイパス フィルターは低周波成分のほとんどを除去してしまうためです。
含まれるもの:
理想ハイパス フィルター (IHPF)
バターワース ハイパス フィルター (BHPF)
指数ハイパス フィルター (EHPF)
台形ハイパス フィルター (THPF) ガウス
ハイパス フィルター (GHPF)
高周波強調フィルター
· 高周波リフティング フィルター
- バンドパス &バンドストップフィルター
- 準同型フィルター

1. 理想的なローパスフィルター

効果
ここに画像の説明を挿入

コード

%理想低通滤波
f1xy=imread("img/eight.tif");
subplot(2,3,1),imshow(f1xy),xlabel("(a)原始图像");

f2xy=imnoise(f1xy,'salt & pepper',0.05);
subplot(2,3,2),imshow(f2xy),xlabel("(b)噪声图像");


fxy=double(f2xy);
Fuv=fft2(fxy);
FftShift=fftshift(Fuv);
AbsFftShift=abs(FftShift);
LogAbsFftShift=log(AbsFftShift);
subplot(2,3,3),imshow(LogAbsFftShift,[]),xlabel("(c)噪声图像的傅里叶幅度谱对数图像"),colormap(gray),colorbar;

%图的尺寸
[N1,N2]=size(FftShift);
% 截至频率D0=50时的滤波效果
D0=50;
%中心点
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        if(d<D0)
            G(i,j)=FftShift(i,j);
        else
            G(i,j)=0;
        end
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,3,4),imshow(g),xlabel("(d)滤波图像(D0=50)");



D0=80;
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        if(d<D0)
            G(i,j)=FftShift(i,j);
        else
            G(i,j)=0;
        end
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,3,6),imshow(g),xlabel("(e)滤波图像(D0=80)");

2.バターワースローパスフィルター

効果
ここに画像の説明を挿入

コード

% 巴特沃斯低通滤波
f1xy=imread("img/eight.tif");
subplot(2,3,1),imshow(f1xy),xlabel("(a)原始图像");

f2xy=imnoise(f1xy,'salt & pepper',0.05);
subplot(2,3,2),imshow(f2xy),xlabel("(b)噪声图像");

% 傅里叶变换
fxy=double(f2xy);
Fuv=fft2(fxy);
FftShift=fftshift(Fuv);
AbsFftShift=abs(FftShift);
LogAbsFftShift=log(AbsFftShift);
subplot(2,3,3),imshow(LogAbsFftShift,[]),xlabel("(c)噪声图像的傅里叶幅度谱对数图像"),colormap(gray),colorbar;

[N1,N2]=size(FftShift);

% 阶数n=2,截至频率D0=40时的滤波效果
n=2;
D0=40;
%中心点
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=1/(1+(sqrt(2)-1)*(d/D0)^(2*n));
        G(i,j)=H*FftShift(i,j);
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,3,4),imshow(g),xlabel("(d)滤波图像({\itn}=2,{\itD}0=40)");


% 阶数n=2,截至频率D0=60时的滤波效果
n=2;
D0=60;
%中心点
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=1/(1+(sqrt(2)-1)*(d/D0)^(2*n));
        G(i,j)=H*FftShift(i,j);
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,3,6),imshow(g),xlabel("(e)滤波图像(n=2,D0=60)");

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

効果
ここに画像の説明を挿入

コード

% 高斯高通滤波
fxy=imread("img/lena.bmp");
subplot(2,2,1),imshow(fxy),xlabel("(a)原始图像");

% 傅里叶幅度谱的对数图像显示
fxy=double(fxy);
Fuv=fft2(fxy);%二维傅里叶变换
ShiftFuv=fftshift(Fuv);
AbsShiftFuv=abs(ShiftFuv);%傅里叶幅度谱
LogAbsShiftFuv=log(AbsShiftFuv);%傅里叶幅度谱可视化
subplot(2,2,2),imshow(LogAbsShiftFuv,[]),xlabel("(b)傅里叶幅度谱对数图像");



% 截至频率D0=10时的滤波效果
[N1,N2]=size(ShiftFuv);
D0=10;
%中心点
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        Huv=1-exp(-d^2/(2*D0^2));% 高斯高通公式
        G(i,j)=Huv*ShiftFuv(i,j);
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,2,3),imshow(g),xlabel("(c)滤波图像(D0=10)");

% 截至频率D0=20时的滤波效果
[N1,N2]=size(ShiftFuv);
D0=20;
%中心点
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-n1)^2+(j-n2)^2);
        Huv=1-exp(-d^2/(2*D0^2));
        G(i,j)=Huv*ShiftFuv(i,j);
    end
end
% 反变换
G=ifftshift(G);
g=ifft2(G);
g=uint8(real(g));
subplot(2,2,4),imshow(g),xlabel("(d)滤波图像(D0=20)");

要約する

周波数領域の強調と空間領域の強調の関係

空間フィルタリングの強化は、スムージング フィルタリングとシャープニング フィルタリングに分けられます。
空間領域の観点から見ると、平滑化フィルタは局所的なグレーレベルの変動とノイズ干渉を低減できます;
周波数領域の観点からは、グレーレベルの変動とノイズ干渉はより高い周波数を持ち、フィルタリングは低い周波数帯域を使用できます。パス機能ドメインフィルター。

空間フィルタリング強化の基本原理は、画像とテンプレートの畳み込みを使用することです。
·畳み込み定理によれば、空間領域での画像とテンプレートの畳み込みは、画像のフーリエ変換と周波数領域でのテンプレートのフーリエ変換の積に等しくなります。
画像の周波数領域強調の基本原理によれば、周波数領域の画像強調は、周波数領域の元の画像と周波数領域の伝達関数の積、つまり、画像のフーリエ変換と周波数領域の伝達関数の積です。
クリックしてソースコードを取得します

おすすめ

転載: blog.csdn.net/CHengYuP/article/details/125986252