Bài giảng Xử lý ảnh số - Chương 5: Xử lý ảnh trong miền tần số - Ngô Quốc Việt

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 
pdf 60 trang thiennv 09/11/2022 5860
Bạn đang xem 20 trang mẫu của 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ô Quốc Việt", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_xu_ly_anh_so_chuong_5_xu_ly_anh_trong_mien_tan_so.pdf

Nội dung text: Bài giảng Xử lý ảnh số - Chương 5: Xử lý ảnh trong miền tần số - Ngô Quốc Việt

  1. Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 11
  2. Complex spectrum F(u,v) R(u,v) i.I(u,v) Amplitude spectrum F(u,v) [R2 (u,v) I 2 (u,v)]1/2 Phase spectrum 1 I(u,v) (u,v) tan R(u,v) Power spectrum P(u,v) F(u,v) 2 R2 (u,v) I 2 (u,v) Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 12
  3. Biên độ Log(biên độ) Pha Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 13
  4. Nguồn: Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 14
  5. Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 15
  6. Tính tuyến tính F(c g(t) c h(t)) c G( f ) c H( f ) 1 2 1 2 Tính dịch chuyển (shift) h(x) f (x x ) hˆ() e 2 ix0 f () 0 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 16
  7. Tính tỉ lệ tuyến tính: G( f / c) F[g(ct)] | c | Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 17
  8. Differentiation (tính đạo hàm) dg(t) F[ ] i2 f .G( f ) dt Tính chập g(t) h(t) g( )h(t  )d F(g(t) h(t)) G( f )H( f ) Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 18
  9. 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
  10. 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 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 20
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. Hàm biến đổi cho ideal low pass filter được xác định bởi: 1 if D(u,v) D0 H(u,v) 0 if D(u,v) D0 với D(u,v) được xác định bởi: D(u,v) [(u M / 2)2 (v N / 2)2 ]1/ 2 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 26
  17. 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
  18. Lọc với ideal low Ảnh gốc pass filter bán kính 5 Lọc với ideal low pass Lọc với ideal low pass filter bán kính 15 filter bán kính 30 Lọc với ideal low pass Lọc với ideal low pass filter bán kính 230 filter bán kính 80 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 28
  19. 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: 1 H(u,v) 2n 1 [D(u,v)/ D0 ] Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 29
  20. Ảnh gốc Lọc với Butterworth filter bậc 2 bán kính 5 Lọc với Butterworth Lọc với Butterworth filter bậc 2 bán kính 15 filter bậc 2 bán kính 30 Lọc với Butterworth Lọc với Butterworth filter bậc 2 bán kính 80 filter bậc 2 bán kính 230 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 30
  21. Hàm biến đổi Gaussian low-pass filter được xác định bởi: 2 2 H(u,v) e D (u,v)/2D0 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 31
  22. Lọc với Gaussian Ảnh gốc 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 Lọc với Gaussian filter bán kính 80 filter bán kính 230 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 32
  23. Lọc Butterworth Lọc ideal low pass filter bậc 2 bán filter bán kính 15 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
  24. Ả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
  25. Xét nhân Gaussian và ảnh đầu vào 1 4 6 4 1 Nhân 4 16 24 16 4 1 Gaussian 6 24 36 24 6 256 4 16 24 16 4 1 4 6 4 1 1. Nhân ảnh với (-1)x+y. Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 35
  26. 2. DFT của ảnh đã nhân với (-1)x+y transformLog 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
  27. 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
  28. Ả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
  29. 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
  30. 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
  31. 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
  32. 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
  33. Hàm biến đổi cho ideal high pass filter được xác định bởi: 0 if D(u,v) D0 H(u,v) 1 if D(u,v) D0 với D(u,v) được xác định bởi: D(u,v) [(u M / 2)2 (v N / 2)2 ]1/ 2 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 43
  34. Lọc ideal high pass Lọc ideal high pass Lọc ideal high pass với D0 = 15 với D0 = 30 với D0 = 80 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 44
  35. 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: 1 H(u,v) 2n 1 [D0 / D(u,v)] Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 45
  36. Lọc Lọc Butterworth Butterworth high pass high pass bậc 2,D0 = 15 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
  37. Hàm biến đổi Gaussian low-pass filter được xác định bởi 2 2 H(u,v) 1 e D (u,v)/ 2D0 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 47
  38. Lọc Gaussian Lọc Gaussian high pass với high pass với D0 = 15 D0 = 80 Lọc Gaussian high pass với D0 = 30 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 48
  39. Lọc ideal high pass Lọc Butterworth high Lọc Gaussian high pass với D0 = 15 pass bậc 2 D0 = 15 với D0 = 15 Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 49
  40. Ảnh gốc Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 50
  41. FFT của ảnh High-pass FFT image Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 51
  42. 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
  43. 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
  44. Tham khảo pencv/lecture_demos/c++/butterworth_lowpass. cpp Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 54
  45. Spatial-domain Laplacian (đạo hàm bậc hai) 2 f 2 f 2 f x2 y2 Fourier transform n  f (x) n  n ( ju) F(u) x 2 2  f (x, y)  f (x, y) 2 2  2 2 ( ju) F(u,v) ( jv) F(u,v) x y (u2 v2 )F(u,v) Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt 55
  46. Input F(u,v) f(x,y) F -(u2+v2) Laplacian 2 2 2  f  f  f 2 2 -(u2+v2)F(u,v) x y 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
  47. 0 H(u,v) = -(u2+v2) frequency Bài giảng Xử lý ảnh - TS. Ngô Quốc 57 spatial Việt 57
  48. original Laplacian Scaled original+ Laplacian Laplacian 58
  49. 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
  50. 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