Mọi tín hiệu không gian hoặc thời gian đều có biểu
diễn tần số tương đương
Tần số thể hiện điều gì trong ảnh?
Tần số cao ứng với các pixel có thay đổi đột ngột
trên ảnh (vd: chữ, vân, cạnh, etc.)
Các thành phần tần số thấp ứng với các đặc trưng
kích thước lớn trong ảnh (vd: đối tượng đơn,
đồng nhất, nền chiếm nhiều diện tích trong ảnh)
Các biến đổi Fourier thể hiện biểu diễn tần số của
ảnh.
Xử lý ảnh trong miền tần số có kết quả tốt hơn
nhiều so với xử lý trong miền không gian.
Các bước chính:
1. Biến đổi ảnh sang miền tần số - T(u,v).
2. Thực hiện các nhiệm vụ trong transformed domain. Nhân
T(u, v) với hàm lọc H(u,v).
3. Thực hiện biến đổi ngược để chuyển về miền không gian.
60 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 581 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Xử lý ảnh số - Chương 5: Xử lý ảnh trong miền tần số - Ngô Quang Việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
XỬ LÝ ẢNH TRONG
MIỀN TẦN SỐ
NGÔ QUỐC VIỆT
TPHCM-2012
1. Biến đổi Fourier một chiều
2. Biến đổi Fourier rời rạc hai chiều
3. Lọc trong miền tần số
4. Sự tương ứng giữa lọc trong miền không gian và
miền tần số
5. Làm trơn ảnh sử dụng bộ lọc trong miền tần số
6. Làm sắc nét ảnh sử dụng bộ lọc trong miền tần số
7. Bộ lọc Homomorphic
2 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Trình bày tóm tắt biến đổi Fourier 2 chiều (DFT2D)
rời rạc
Ứng dụng DFT2D vào các bài toán cơ bản trong xử
lý ảnh
3 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Do nhà toán học Pháp (1768) Jean Baptiste Joseph
Fourier giới thiệu vào 1805
Hàm tuần hoàn có thể biểu diễn là tổng có trọng số
của các hàm sin và/hoặc cosin chuỗi Fourier.
Hàm không tuần hoàn có thể biển diễn thành tích
của của sin và/hoặc cosin nhân với hàm trọng số
biến đổi Fourier.
Biến đổi Fourier có ứng dụng thực tế nhiều hơn so
với chuỗi Fourier
Chuỗi và biến đổi Fourier làm nền tảng cho miền
Fourier, hay còn gọi là miền tần số.
Thuật giải Fast Fourier Transform (FFT) hỗ trợ rất
nhiều trong xử lý tín hiệu bao gồm xử lý ảnh
4 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Dữ liệu ảnh không thể hiện hết các tính chất cần
thiết để thực hiện các xử lý cơ bản
Bản thân dữ liệu chứa sóng (bất kể số chiều). Nếu
không thì không chứa thông tin.
Biểu diễn trong miền tần số (Fourier transform)
thể hiện chính xác các “sóng” đó
5 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
N
g
u
ồ
n
:
m
ath
w
o
rld
.w
o
lfram
.co
m
DFT đã được sử dụng hiệu quả trong xử lý tín hiệu
số một chiều.
Mở rộng DFT2D cho xử lý ảnh là xu hướng tự nhiên.
Khái niệm lọc (filtering) dễ dàng biểu thị (tần số cao,
tần số thấp, etc) hơn trong miền tần số
Dễ dàng remove những tần số không cần thiết.
Phép toán “chập” trong miền tần số đễ thực hiện
hơn trong miền không gian (ảnh lớn chập lâu.
Trong khi miền giá trị trong miền tần số là xác định
hữu hạn)
Thực hiện các xử lý trong miền tần số nhanh hơn
trong miền không gian.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 6
Minh họa giảm nhiễu thông qua DFt2D
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 7
Khó có thể
khử nhiễu
ảnh này trong
miền
không gian
Kết quả khử
nhiễu trong miền
tần số
Nguồn:
Cho f(x,y) là hàm liên tục trong không gian hai chiều
FT thuận được định nghĩa bởi
f(x,y): biểu diễn biên độ
e-j2(.): biểu diễn pha
FT nghịch được biểu diễn bởi
8 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
))(2sin())(2cos()(2 vyuxjvyuxvyuxje
Cho f(m,n) là ảnh rời rạc kích thước MxN trong
không gian hai chiều
DFT thuận được định nghĩa bởi
DFT nghịch (IDFT) được định nghĩa bởi
9
)1,,1,01,,1,0(
),(
1
),(
1
0
1
0
2
NvMu
eyxf
MN
vuF
M
m
N
n
N
vn
M
um
j
)1,,1,01,,1,0(
),(),(
1
0
1
0
2
NyMx
evuFyxf
M
u
N
v
N
vy
M
ux
j
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
10 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Ảnh gốc
Phần thực Phần ảo
Đối xứng Đối xứng
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 11
Complex spectrum
Amplitude spectrum
Phase spectrum
Power spectrum
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 12
2/122 )],(),([),( vuIvuRvuF
),(
),(
tan),( 1
vuR
vuI
vu
),(),(),(),( 22
2
vuIvuRvuFvuP
),(.),(),( vuIivuRvuF
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 13
Biên độ Log(biên độ) Pha
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 14
Nguồn:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 15
Tính tuyến tính
Tính dịch chuyển (shift)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 16
)()())()(( 2121 fHcfGcthctgcF
)()(ˆ)()( 020
fehxxfxh ix
Tính tỉ lệ tuyến tính:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 17
||
)/(
)]([
c
cfG
ctgF
Differentiation (tính đạo hàm)
Tính chập
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 18
)(.2]
)(
[ fGfi
dt
tdg
F
dthgthtg )()()()(
)()())()(( fHfGthtgF
Hiển thị ảnh power spectrum của ảnh Input
Hàm dft: biến đổi fourier cho ảnh iput
split: tách phần thực và phần ảo
magnitude
magI += Scalar::all(1); // switch to logarithmic scale
log(magI, magI);
Thực hiện center: bằng cách hoán vị các phần tư ảnh (A –
C; B—D)
e/discrete_fourier_transform/discrete_fourier_transform.html
Yêu cầu: sinh viên hãy cài đặt lại đoạn chương trình
tham khảo trong link trên
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 19
Fast Fourier Transform (FFT) - là thuật giải hiệu quả
để thực hiện DFT và iDFT.
Độ phức tạp O(NlogN) so với O(N2) của DFT.
Có nhiều thuật giải FFT (Bruun, Rader, Bluestein),
phổ biến nhất là thuật giải Cooley-Tukey
Tham khảo:
Tukey_FFT_algorithm
20 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Mọi tín hiệu không gian hoặc thời gian đều có biểu
diễn tần số tương đương
Tần số thể hiện điều gì trong ảnh?
Tần số cao ứng với các pixel có thay đổi đột ngột
trên ảnh (vd: chữ, vân, cạnh, etc.)
Các thành phần tần số thấp ứng với các đặc trưng
kích thước lớn trong ảnh (vd: đối tượng đơn,
đồng nhất, nền chiếm nhiều diện tích trong ảnh)
Các biến đổi Fourier thể hiện biểu diễn tần số của
ảnh.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 21
Xử lý ảnh trong miền tần số có kết quả tốt hơn
nhiều so với xử lý trong miền không gian.
Các bước chính:
1. Biến đổi ảnh sang miền tần số - T(u,v).
2. Thực hiện các nhiệm vụ trong transformed domain. Nhân
T(u, v) với hàm lọc H(u,v).
3. Thực hiện biến đổi ngược để chuyển về miền không gian.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 22
1. Nhân ảnh đầu vào với (-1)x+y chuyển vào tâm
phép biến đổi. Nghĩa là F(0, 0) cho vị trí
u=M/2, v=N/2;
2. Thực hiện DFT F(u,v) cho ảnh ở bước 1
3. Nhân F(u,v) với lọc G(u,v).
4. Tính biến đổi DFT ngược h*(x,y).
5. Lấy phần thực của h(x,y) của bước 4.
6. Nhân kết quả với (-1)x+y.
Chú ý: lọc trong miền tần số không sử dụng nhân
chập và toán tử chập.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 23
Sử dụng các bộ lọc thông thấp như:
Bộ lọc thông thấp lý tưởng (Ideal Low Pass Filter)
Bộ lọc thông thấp Butterworth (Butterworth
Lowpass Filters)
Bộ lọc thông thấp Gaussian (Gaussian Lowpass
Filters)
24 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Loại bỏ tất cả các thành phần tần số cao (power
spectrum) trong phạm vi bán kính D0 tính từ gốc của
ảnh đã biến đổi
Thay đổi giá trị D0 sẽ làm thay đổi kết quả của lọc.
25 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Hàm biến đổi cho ideal low pass filter được xác định
bởi:
với D(u,v) được xác định bởi:
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 26
0
0
),( if 0
),( if 1
),(
DvuD
DvuD
vuH
2/122 ])2/()2/[(),( NvMuvuD
Ảnh trên thể hiện phổ Fourier và các ideal low pass
filters có bán kính 5, 15, 30, 80 và 230 chồng lên ảnh
đã biến đổi
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 27
Các ảnh và ví dụ lọc tần số cao/thấp lấy từ nguồn: Gonzalez &
Woods, Digital Image Processing (2002)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 28
Ảnh gốc
Lọc với ideal low
pass filter bán kính 5
Lọc với ideal low pass
filter bán kính 30
Lọc với ideal low pass
filter bán kính 230
Lọc với ideal low pass
filter bán kính 80
Lọc với ideal low pass
filter bán kính 15
Hàm biến đổi Butterworth low-pass filter bậc n
nhằm loại bỏ tần số cao trong bán kính D0 tính từ
tâm ảnh đã biến đổi được xác định bởi:
29 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
nDvuD
vuH
2
0]/),([1
1
),(
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 30
Ảnh gốc Lọc với Butterworth
filter bậc 2 bán kính 5
Lọc với Butterworth
filter bậc 2 bán kính 30
Lọc với Butterworth
filter bậc 2 bán kính 230
Lọc với Butterworth
filter bậc 2 bán kính 80
Lọc với Butterworth
filter bậc 2 bán kính 15
Hàm biến đổi Gaussian low-pass filter được xác định
bởi:
31 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
2
0
2 2/),(),( DvuDevuH
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 32
Ảnh gốc
Lọc với Gaussian
filter bán kính 5
Lọc với Gaussian
filter bán kính 230
Lọc với Gaussian
filter bán kính 80
Lọc với Gaussian
filter bán kính 15 Lọc với Gaussian
filter bán kính 30
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 33
Lọc ideal low pass
filter bán kính 15
Lọc Butterworth
filter bậc 2 bán
kính 15
Lọc Gaussian filter
bán kính 15
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 34
Ảnh gốc Gaussian lowpass
filter
Ảnh kết quả Power Spectrum
Xét nhân Gaussian và ảnh đầu vào
1. Nhân ảnh với (-1)x+y.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 35
14641
41624164
62436246
41624164
14641
256
1
N
h
ân
G
au
ssian
2. DFT của ảnh đã nhân với (-1)x+y
3. Nhân F(u, v) với bộ lọc Gaussian G(u, v)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 36
L
o
g
tra
n
s
fo
rm
4. Tính biến đổi inverse DFT h*(x,y).
5. Lấy phần thực của h(x,y) của bước 4.
6. Nhân kết quả với (-1)x+y
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 37
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 38
Ảnh gốc
Bị nhiễu ô vuông
Ảnh đã lọc low pass
Butterworth
clear;
aerial = imread('Fig3.09(a).jpg');
aerial = double(aerial);
[nx ny] = size(aerial);
nx
ny
u = aerial;
for i = 1:nx
for j = 1:ny
% This is aerial with periodic noise.
u(i,j) = u(i,j) + ...
5.*(1+sin(2*pi*((i-1)/nx)*200))+...
5.*(1+sin(2*pi*((j-1)/ny)*200))+...
5.*(1+cos(2*pi*((i-1)/nx+(j-1)/ny)*141))+...
5.*(1+sin(2*pi*((i-1)/nx-(j-1)/ny)*141));;
end
end
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 39
sineaerial = uint8(u);
imwrite(sineaerial, 'sineaerial.jpg');
c = 1.; % Use the power transformation to darken.
gamma = 2;
f_fp =255*c*(u/255).^gamma;
u = f_fp;
fftu = fft2(u,2*nx-1,2*ny-1);
fftu = fftshift(fftu);
subplot(1,2,1)
mesh(log(1+(abs(fftu))));
filter = ones(2*nx-1,2*ny-1);
d0 = 400; % Use Butterworth band reject filter.
n = 4;
w = 20;
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 40
for i = 1:2*nx-1
for j =1:2*ny-1
dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5;
if dist ~= d0
filter(i,j)= 1/(1 + (dist*w/(dist^2 - d0^2))^(2*n));
else
filter(i,j) = 0;
end
end
end
fil_aerial = filter.*fftu;
subplot(1,2,2)
mesh(log(1+abs(fil_aerial)));
fil_aerial = ifftshift(fil_aerial);
fil_aerial = ifft2(fil_aerial,2*nx-1,2*ny-1);
fil_aerial = real(fil_aerial(1:nx,1:ny));
fil_aerial = uint8(fil_aerial);
imwrite(fil_aerial, 'sineaerial_fil.jpg');
41
Sử dụng các bộ lọc thông cao (High pass filters) –
nhằm giữ lại các tần số cao, và loại tần số thấp
High pass filter là đảo ngược của low pass filter:
nghĩa là
Hhp(u, v) = 1 – Hlp(u, v)
Các bộ lọc thông cao như:
Bộ lọc thông cao lý tưởng (ideal high-pass filter)
Bộ lọc thông cao Butterworth (Butterworth high-
pass filter)
Bộ lọc thông cao Gaussian (Gaussian high-pass filter
Laplacian trong miền tần số
Unsharp mask, high-boost và bộ lọc tần số cao
42 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
43 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
Hàm biến đổi cho ideal high pass filter được xác định
bởi:
với D(u,v) được xác định bởi:
0
0
),( if 1
),( if 0
),(
DvuD
DvuD
vuH
2/122 ])2/()2/[(),( NvMuvuD
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 44
Lọc ideal high pass
với D0 = 15
Lọc ideal high pass
với D0 = 30
Lọc ideal high pass
với D0 = 80
Hàm biến đổi Butterworth low-pass filter bậc n
nhằm loại bỏ tần số thấp trong bán kính D0 tính từ
tâm ảnh đã biến đổi được xác định bởi:
45 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
nvuDD
vuH
2
0 )],(/[1
1
),(
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 46
Lọc
Butterworth
high pass
bậc 2,D0 = 15
Lọc
Butterworth
high pass
bậc 2,D0 = 80
Lọc Butterworth
high pass bậc
2,D0 = 30
Hàm biến đổi Gaussian low-pass filter được xác định
bởi
47 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
2
0
2 2/),(1),( DvuDevuH
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 48
Lọc Gaussian
high pass với
D0 = 15
Lọc Gaussian
high pass với
D0 = 80
Lọc Gaussian high
pass với D0 = 30
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 49
Lọc ideal high pass
với D0 = 15
Lọc Gaussian high pass
với D0 = 15
Lọc Butterworth high
pass bậc 2 D0 = 15
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 50
Ảnh gốc
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 51
FFT của ảnh High-pass
FFT image
clear;
micro = imread('Fig4.04(a).jpg');
micro = double(micro);
[nx ny] = size(micro);
nx
ny
u = micro;
micro = uint8(u);
imwrite(micro, 'micro.jpg');
fftu = fft2(u,2*nx-1,2*ny-1);
fftu = fftshift(fftu);
subplot(1,2,1)
mesh(log(1+(abs(fftu))));
% Use Butterworth or Gaussian high pass filter
filter = ones(2*nx-1,2*ny-1);
d0 = 100;
n = 4;
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 52
for i = 1:2*nx-1
for j =1:2*ny-1
dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5;
% Use Butterworth high pass filter.
filter(i,j)= 1/(1 + (dist/d0)^(2*n));
filter(i,j)= 1.0 - filter(i,j);
% Use Gaussian high pass filter.
%filter(i,j) = exp(-dist^2/(2*d0^2));
%filter(i,j) = 1.0 - filter(i,j);
end
end
% Update image with high frequencies.
fil_micro = fftu + filter.*fftu;
subplot(1,2,2)
mesh(log(1+abs(fil_micro-fftu)));
fil_micro = ifftshift(fil_micro);
fil_micro = ifft2(fil_micro,2*nx-1,2*ny-1);
fil_micro = real(fil_micro(1:nx,1:ny));
fil_micro = uint8(fil_micro);
imwrite(fil_micro, 'micro_fil.jpg');
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 53
Tham khảo
pencv/lecture_demos/c++/butterworth_lowpass.
cpp
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 54
Spatial-domain Laplacian (đạo hàm bậc hai)
Fourier transform
55 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
2
2
2
2
2
y
f
x
f
f
)()(
)(
uFju
x
xf n
n
n
),()(
),()(),()(
),(),(
22
22
2
2
2
2
vuFvu
vuFjvvuFju
y
yxf
x
yxf
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 56
2
2
2
2
2
y
f
x
f
f
Input
f(x,y)
Laplacian
F(u,v)
F
F
-(u2+v2)F(u,v)
-(u2+v2)
The Laplacian filter trong miền tần số xác định bởi
H(u,v) = -(u2+v2)
Bài giảng Xử lý ảnh - TS. Ngô Quốc
Việt
57
0
frequency
spatial
H(u,v) = -(u2+v2)
57
original
Laplacian
Scaled
Laplacian
original+
Laplacian
58
Xử lý ảnh trong miền tần số có nhiều thuận lợi so với
xử lý trong miền không gian. Tần số cao ứng với các
chi tiết mịn, tần số thấp ứng với các thành phần thô.
Lọc trong miền tần số đơn giản là nhân F(u,v) của
ảnh với biến đổi lọc G(u,v).
Các bộ lọc thông thấp và thông cao: ideal,
Butterwort, Gaussian
Laplacian trong miền tần số có dạng đơn giản
H(u,v) = -(u2+v2)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 59
1. Viết chương trình dựa trên OpenCV nhằm thực
hiện các lọc trong miền tần số. Hướng dẫn: tham
khảo liên kết trong slide 54 và các mã nguồn
MATLAB.
2. So sánh kết quả lọc trong miền tần số và lọc trong
miền không gian
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 60
Các file đính kèm theo tài liệu này:
- bai_giang_xu_ly_anh_so_chuong_5_xu_ly_anh_trong_mien_tan_so.pdf