|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
( ^8 j& M) P+ ]6 B4 J0 U! G频域滤波可以用来消除周期噪声。2 S) {! D4 N/ \& b7 W u+ c* `
' @3 r% `2 k! N& X4 J; g8 u 傅里叶变换5 k6 q" k+ q$ E: k1 i; M* p" z
) L) n. Q- z, \# _
图像较平滑,低频部分对应的幅值较大,图像灰度变化越剧烈,其频谱高频分量较强: g- A8 @/ I; { x
5 t6 e s* a+ K- I1 = imread('cell.tif'); %读入原图像 fcoef = fft2(double(I1)); %做fft变换 spectrum = fftshift(fcoef); %将零点移到中心 temp =log(1+abs(spectrum)); %对幅值做对数变换以压缩动态范围 subplot(1,2,1); imshow(temp,[]); title('FFT'); subplot(1,2,2); imshow(I1); title('Source')
! |- H+ k' k0 a# n) Y6 o 9 y6 N! b$ x( R5 t. R. Y: ?
6 L7 e( O- Q' p" B8 t
幅度谱反映图像整体上各个频率分量的相对强度。相位谱对应图像内容。
. j9 Z& v0 }# Y# L# @8 _# ? g$ V, D8 d9 `
- % 读取图片 A = imread('../beauty.jpg'); B = imread('../cat.jpg'); % 求傅立叶变换 Af = fft2(double(A)); Bf = fft2(double(B)); % 分别求幅度谱和相位谱 AfA = abs(Af); AfB = angle(Af); BfA = abs(Bf); BfB = angle(Bf); % 交换相位谱并重建复数矩阵 AfR = AfA .* cos(BfB) + AfA .* sin(BfB) .* i; BfR = BfA .* cos(AfB) + BfA .* sin(AfB) .* i; % 傅立叶反变换 AR = abs(ifft2(AfR)); BR = abs(ifft2(BfR)); % 显示图像 subplot(2,2,1); imshow(A); title('美女原图像'); subplot(2,2,2); imshow(B); title('猫的原图像'); subplot(2,2,3); imshow(AR, []); title('美女的幅度谱和猫的相位谱组合'); subplot(2,2,4); imshow(BR, []); title('猫的幅度谱和美女的相位谱组合');7 t& ?. Y9 P0 }8 j( n
3 D, f; Y' A7 [/ w& F6 H- V
& x4 r# t; ^1 C4 L
' t6 E$ ]8 p. i9 m5 S- @
) u1 D; r$ n' C5 o理想低通滤波, `# s" x/ ]+ R* o2 {5 ~
8 T% `# c( g* ?4 ]4 b- function out = imidealflpf(I, freq) % imidealflpf函数 构造理想的频域低通滤波器 % I参数 输入的灰度图像 % freq参数 低通滤波器的截止频率 % 返回值:out – 指定的理想低通滤波器 [M,N] = size(I); out = ones(M,N); for i=1:M for j=1:N if (sqrt(((i-M/2)^2+(j-N/2)^2))>freq) out(i,j)=0; end end end
. i5 J$ q, r0 C$ Q
! `0 K! O) M( Z; J# b4 l1 z5 R" Y# q; g: _% H
- I = imread('../baby_noise.bmp'); %读入原图像 % 生成滤镜 ff = imidealflpf(I, 20); % 应用滤镜 out = imfreqfilt(I, ff); figure (1); subplot(2,2,1); imshow(I); title('Source'); % 计算FFT并显示 temp = fft2(double(I)); temp = fftshift(temp); temp = log(1 + abs(temp)); figure (2); subplot(2,2,1); imshow(temp, []); title('Source'); figure (1); subplot(2,2,2); imshow(out); title('Ideal LPF, freq=20'); % 计算FFT并显示 temp = fft2(out); temp = fftshift(temp); temp = log(1 + abs(temp)); figure (2); subplot(2,2,2); imshow(temp, []); title(' Ideal LPF, freq=20'); % 生成滤镜 ff = imidealflpf(I, 40); % 应用滤镜 out = imfreqfilt(I, ff); figure (1); subplot(2,2,3); imshow(out); title('Ideal LPF, freq=40'); % 计算FFT并显示 temp = fft2(out); temp = fftshift(temp); temp = log(1 + abs(temp)); figure (2); subplot(2,2,3); imshow(temp, []); title(' Ideal LPF, freq=40'); % 生成滤镜 ff = imidealflpf(I, 60); % 应用滤镜 out = imfreqfilt(I, ff); figure (1); subplot(2,2,4); imshow(out); title('Ideal LPF, freq=60'); % 计算FFT并显示 temp = fft2(out); temp = fftshift(temp); temp = log(1 + abs(temp)); figure (2); subplot(2,2,4); imshow(temp, []); title(' Ideal LPF, freq=60');
4 S2 C5 P1 \5 ^- l
, {( c6 I* r* L3 S7 z4 R. c
! L' W8 [* G4 `6 y/ D/ C v1 v3 B: L: C# u. P" ? D( S% @) C( {2 e. r( T
高斯低通滤波器
& |/ r9 h- |( S% x# |- p: D: ^* K z# U! z" `
- function out = imgaussflpf(I, sigma) % imgaussflpf函数 构造频域高斯低通滤波器 % I参数 输入的灰度图像 % sigma参数 高斯函数的Sigma参数 [M,N] = size(I); out = ones(M,N); for i=1:M for j=1:N out(i,j) = exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2); end end% L1 N$ O, s3 Y9 w5 [
- N: j9 J, W4 t, _
8 J; D( M8 W0 X0 k2 A" W3 q6 E a高斯高通滤波器
' W: T& c, O( [# t2 [' Y% j( k! {/ }% K( \
- function out = imgaussfhpf(I, sigma) % imgaussfhpf函数 构造频域高斯高通滤波器 % I参数 输入的灰度图像 % sigma参数 高斯函数的Sigma参数 [M,N] = size(I); out = ones(M,N); for i=1:M for j=1:N out(i,j) = 1 - exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2); end end7 j# H% Y5 M* y$ j; o
2 K" u9 h+ O& ?# a9 E# d) ?
6 G4 f6 V( j5 a: f9 v
1 K: j5 @) ^$ O9 g- ? ~1 }0 o/ D* D; B7 ^高斯带阻滤波器、
* P4 {( m2 s) t+ @5 C6 I* C1 L2 {0 N, w% C9 X
- function out = imgaussfbRF(I, freq, width) % imidealflpf函数 构造频域高斯带阻滤波器 % I参数 输入的灰度图像 % freq参数 阻带中心频率 % width参数 阻带宽度 [M,N] = size(I); out = ones(M,N); for i=1:M for j=1:N out(i,j) = 1-exp(-0.5*((((i-M/2)^2+(j-N/2)^2)-freq^2)/(sqrt(i.^2+j.^2)*width))^2); end end. |) [, W0 A r( t
- E. w, c, M# ?$ C& p
/ a: ] b! X7 C+ q
' F% R' `* m# Z |
|