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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 2

 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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 3

 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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 4

 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

.

N g u ồ n :

m a t h w o r l d w o l f r a m . c o m

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” đó

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 5

 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

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: http://www.cse.unr.edu

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 7

 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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 8

 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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 9

Ả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 10

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

Biên độ

Log(biên độ)

Pha

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 13

Nguồn: http://cmp.felk.cvut.cz

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 14

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

 Tính tỉ lệ tuyến tính:

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 17

 Differentiation (tính đạo hàm)

 Tính chập

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 18

 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)

 http://www.opencv.org.cn/opencvdoc/2.3.1/html/doc/tutorials/cor 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: http://en.wikipedia.org/wiki/Cooley-

Tukey_FFT_algorithm

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 20

 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)

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 24

 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.

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 25

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

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)

 Ả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

ideal

low Lọc với pass filter bán kính 5

Ảnh gốc

Lọc với ideal low pass filter bán kính 15

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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 28

 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:

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 29

Ả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 15

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 80

với Butterworth Lọc filter bậc 2 bán kính 230

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 30

 Hàm biến đổi Gaussian low-pass filter được xác định

bởi:

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 31

Ảnh gốc

Lọc với Gaussian filter bán kính 5

Lọc với Gaussian filter bán kính 15

Lọc với Gaussian filter bán kính 30

Lọc với Gaussian filter bán kính 80

Lọc với Gaussian filter bán kính 230

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 32

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 33

Ảnh gốc

Gaussian lowpass filter

Power Spectrum

Ảnh kết quả

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 34

 Xét nhân Gaussian và ảnh đầu vào

N h â n G a u s s i a n

1. Nhân ảnh với (-1)x+y.

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 35

2. DFT của ảnh đã nhân với (-1)x+y

L o g t r a n s f o r m

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

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

Ảnh gốc

Ảnh đã lọc low pass Butterworth

Bị nhiễu ô vuông

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 38

% 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));;

for j = 1:ny end

clear; aerial = imread('Fig3.09(a).jpg'); aerial = double(aerial); [nx ny] = size(aerial); nx ny u = aerial; for i = 1:nx 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

filter(i,j)= 1/(1 + (dist*w/(dist^2 - d0^2))^(2*n));

filter(i,j) = 0;

dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5; if dist ~= d0 else end

for j =1:2*ny-1 end

for i = 1:2*nx-1 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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 42

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:

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 43

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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 44

 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:

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 45

Lọc Butterworth pass high bậc 2,D0 = 15

Lọc Butterworth pass high bậc 2,D0 = 80

Lọc Butterworth high pass bậc 2,D0 = 30 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt

46

 Hàm biến đổi Gaussian low-pass filter được xác định

bởi

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 47

Lọc Gaussian high pass với D0 = 80

Lọc Gaussian high pass với D0 = 15

Lọc Gaussian high pass với D0 = 30

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 48

Lọc ideal high pass với D0 = 15

Lọc Butterworth high pass bậc 2 D0 = 15

Lọc Gaussian high pass với D0 = 15

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 49

Ảnh gốc

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 50

FFT của ảnh

High-pass FFT image

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 51

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

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);

for j =1:2*ny-1 end

for i = 1:2*nx-1 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

http://public.cranfield.ac.uk/c5354/teaching/dip/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

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 55

F(u,v)

Input f(x,y)

F

-(u2+v2)

Laplacian

-(u2+v2)F(u,v)

F

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 56

0

frequency

H(u,v) = -(u2+v2)

57

spatial

Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt

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