Bài giảng Xử lý ảnh số - Xử lý ảnh trong miền tần số

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

pdf60 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1393 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Xử lý ảnh số - Xử lý ảnh trong miền tần số, để 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:

  • pdfxla_baigiang_05_7549.pdf
Tài liệu liên quan