接上文:傅立葉變換濾波
頻域濾波器
理想低通濾波器
巴特沃茲低通濾波器
高斯低通濾波器
dftuv的實現(xiàn)
dftuv函數(shù)的作用是 生成頻域的距離向量組。這個距離是距離頻域中心的距離
function [U, V] = dftuv(M, N)
%DFTUV Computes meshgrid frequency matrices.
% [U, V] = DFTUV(M, N) computes meshgrid frequency matrices U and
% V. U and V are useful for computing frequency-domain filter
% functions that can be used with DFTFILT. U and V are both
% M-by-N.
% Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins
% Digital Image Processing Using MATLAB, Prentice-Hall, 2004
% $Revision: 1.3 $ $Date: 2003/04/16 22:30:34 $
% Set up range of variables.
u = 0:(M - 1);
v = 0:(N - 1);
% Compute the indices for use in meshgrid.
idx = find(u > M/2);
u(idx) = u(idx) - M;
idy = find(v > N/2);
v(idy) = v(idy) - N;
% Compute the meshgrid arrays.
[V, U] = meshgrid(v, u);
直接用頻域高斯低通濾波的例子
clear all;
close all;
f=imread('E:\資料\onedrive\code\test\image\Fig0413(a)(original_test_pattern).tif');
PQ=paddedsize(size(f));
% 生成低通濾波器(注意大小) 移動
[U,V]=dftuv(PQ(1),PQ(2));
D0=0.05*PQ(2);
H=exp(-1*(U.^2+V.^2)/(2*D0.^2));
H1=fftshift(H);
% 濾波輸出結(jié)果
g=dftfilt(f,H);
f1=fft2(f);
myImshow(f);myImshow(H1); myImshow(g);myImshow(0);
運行結(jié)果
用高通濾波進行圖像銳化
用圖像的原始頻率同時在高頻部分進行增強。(拉普拉斯檢測邊緣也是檢測的高頻部分其實)
% % % % % % % % % % % % % % % %% % % % % % % % % % % % % % % %
% 用高通濾波做頻域增強
% % % % % % % % % % % % % % % %% % % % % % % % % % % % % % % %
% 讀取圖片
clear all;
close all;
f=imread('E:\資料\onedrive\code\test\image\Fig0419(a)(chestXray_original).tif');
% 生成波特沃茲濾波器
PQ=paddedsize(size(f));
[U,V]=dftuv(PQ(1),PQ(2));
D0=0.05PQ(2);
n=[1,5,15,50];
% D0=[15,30,80];
myImshow(gscale(f));
for i=1:numel(n);
b=((U.2+V.2)/(D0.2)).n(i);
H=b/(b+1);
%myImshow(H);
% 按照公式進行運算
Hh=0.5+2H;
g=dftfilt(f,Hh);
g=histeq(gscale(g),256);
myImshow(g);
end
myImshow(0);