|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 |, _, ?* G- k! H4 Z频域滤波可以用来消除周期噪声。2 L0 I( J/ X: U8 [3 @) q% H, a. Y
6 e1 [2 J! I0 n
傅里叶变换+ c# s d4 X0 C; G9 x, F
' H# T9 S9 s, N" K) h 图像较平滑,低频部分对应的幅值较大,图像灰度变化越剧烈,其频谱高频分量较强
6 G% z' F! P c. |# ]) f! d, _5 ?4 U) ?
- 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')7 _( j6 n/ s$ h1 v. p, ]
5 K7 C0 j1 k( ?( ~+ I8 i8 y1 r8 v( X ]! X6 \0 r# B) p9 x
幅度谱反映图像整体上各个频率分量的相对强度。相位谱对应图像内容。( P9 i- N! H2 z/ ?# J
7 C9 N# G" R# d' T2 ]6 \
- % 读取图片 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('猫的幅度谱和美女的相位谱组合');# a Q6 _5 l; K
0 l* i# A d/ Z& _* H$ u# q3 u: O
; F3 A8 g3 v6 }' u. Q4 [0 G" w& Y3 A! x8 ?# P3 _ R
$ D! s9 W4 [/ ?4 {/ W8 }理想低通滤波
9 ]% d' w6 \: A @5 U5 I$ C8 B& d$ Y) F0 \4 b0 i+ h" n# p: _
- 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
+ u3 U9 @5 P% K: S' Y% Q
5 m$ C/ A+ i7 \6 G, d4 q7 Y* u) N* }/ f4 x7 @! L3 A8 @* {
- 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');
, D2 E ~! M [ 5 ~6 E# c# z; i3 ~# M
% z$ W1 s6 h7 S2 a0 x6 A- }! Q
+ I2 E3 k2 @$ U( G, e' `( O5 R高斯低通滤波器
9 _: k; k2 R" r: o2 \8 V _' C
. X* H# N8 Q J% d9 R# P. j- 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
, U( Q, C3 [! @
; }( e" z; w' |6 t" b4 j) @7 p% s: r: ]! u
高斯高通滤波器' w/ a3 h. G4 |: B+ s2 N* b" }: t5 m
, o* h9 h4 M. C9 k/ q# H- 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 end
% W6 a# c, A1 S9 T$ p7 { ( B7 f8 M1 ~2 ?0 H: S: @7 ~* Y
, F9 N* W) L+ U9 L
+ G2 e$ _" j& U) O高斯带阻滤波器、
# c3 c( w+ ~, V
: `9 t3 V5 A; u1 `0 P) b- 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
+ M9 ?( L) o9 b& p, G
0 E# r! A$ `, o; k" n( {- j) p" {) [" G5 g# N6 Y
n( _: E: K& b/ {+ l0 P, e
|
|