Bài giảng Xử lý ảnh số - Ngô Văn Sỹ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Xử lý ảnh số - Ngô Văn Sỹ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_xu_ly_anh_so_ngo_van_sy.pdf
Nội dung text: Bài giảng Xử lý ảnh số - Ngô Văn Sỹ
- Xử lý ảnh số Ts.NGÔ VĂNSỸ ĐẠIHỌC BÁCH KHOA ĐẠIHỌC ĐÀNẴNG
- Tín hiệuvàhệ thống số 2D Tín hiệusố hai chiều (2-Dimension) Số hoá tín hiệu hai chiều Hệ thống số hai chiều Biến đổi Fourier hai chiềuFT-2D Biến đổi Fourier hai chiềurờirạcDFT-2D Biến đổiZ haichiều(Biến đổiLauren) Các phép biến đổitrực giao 2D khác, ứng dụng trong xử lý ảnh số.
- Tín hiệusố hai chiều (2-Dimension) Định nghĩa: Tín hiệusố hai chiềulàhàm thựchay phứccủahaibiến nguyên độc lập ⎡ x(0,0) x(0,1) x(0,l) x(0, N −1) ⎤ ⎢ ⎥ ⎢ x(1,0) x(1,1) x(1,l) x(1, N −1) ⎥ ⎢ : : : : : : ⎥ x(m,n) = ⎢ ⎥ ⎢ x(k,0) x(k,1) x(k,l) x(k, N −1) ⎥ ⎢ : : : : : : ⎥ ⎢ ⎥ ⎣⎢x(M −1,0) x(M −1,1) x(M −1,l) x(M −1, N −1)⎦⎥ N kích thướcbức ảnh theo chiều ngang M kích thướcbức ảnh theo chiều đứng
- Các tín hiệusố hai chiềucơ bản Hàm Delta Kronecker Hàm bướcnhảy đơnvị 2D Hàm xung chữ nhật2D Hàm sin rờirạc2D Hàm cosin rờirạc2D Hàm mũ thực2D Hàm mũảo2D
- Hàm Delta Kronecker ⎧1 Khi (m = 0) ∧ (n = 0) δ (m,n) = ⎨ δ(m,n) n ⎩0 ∀ m,n ≠ 0 m
- Hàm bướcnhảy đơnvị 2D ⎧1 Khi (m ≥ 0) ∧ (n ≥ 0) u(m,n) = ⎨ 0 ∀ m,n < 0 u(m,n) ⎩ n m
- Hàm xung chữ nhật2D ⎧1 Khi (0 ≤ m < M -1) ∧ (0 ≤ n < N -1) rectMN (m,n) = ⎨ ⎩0 Khi (m < 0) ∨ (M ≤ m) ∨ (n < 0) ∨ (N ≤ n) rect (m,n) 32 n m
- Hàm sin và cosin rờirạc2D 2π 2π sinω ω (m,n) = sin( m)sin( n) Khi − ∞ < m,n < ∞ M N M N 2π 2π cosω ω (m,n) = cos( m)cos( n) Khi − ∞ < m,n < ∞ M N M N sinωN(n) n cosωM(m) m
- Hàm mũ thực2D e(m,n) = am.bn Khi - ∞ 1 dãy mộtchiềulàtăng n m e(m)=a |a|<1 dãy mộtchiềulàsuy giảm m
- Hàm mũảo2D E(m,n) = e jmωM e jnωN 2π 2π voi e jmωM = cos( m) + j sin( m) M M 2π 2π e jmωN = cos( n) + j sin( n) N N Như vậycóthể tổ hợpphức cho hàm sin và cosin rờirạc để thu đượchàmmũảo
- Số hoá tín hiệu hai chiều Lượng tử hoá và điều Mã hoá f(x,y) khiểnlogic fs(m∆xs,n∆ys)fq(m,n) f(m,n) Lấymẫutrênlướichữ nhật
- Định lý lấymẫu2D Tín hiệu f(x,y) có phổ tầnsố không gian đượchạnchế trong mộtmiền biên, có thể được đặctrưng một cách chính xác bởi các mẫu đượclấy đềutrênmộtlướichữ nhậtvới điềukiện chu kỳ lấymẫutheochiều ngang ∆xs (và chiều đứng∆ys) không vượtquámộtnửachukỳ của thành phầntầnsố không gian cực đạitheochiều ngang ∆xmin(và chiều đứng ∆ymin). 1 1 ∆x ≤ ∆x ; và ∆y ≤ ∆y s 2 min s 2 min ξ xs ≥ 2ξ xmax ; và ξ ys ≥ 2ξ y max 1 1 ξ xs = ; ξ ys = ∆xs ∆ys
- Chèn phổ Tốc độ lấymẫuthấp
- Chèn phổ Tầnsố lấymẫuthoả mãn định lý Nyquist
- Chèn phổ Tầnsố lấymẫu đủ lớn
- Khôi phục tín hiệulấymẫu Công thức khôi phục tín hiệu analog từ tín hiệulấymẫu2D là: ∞ ∞ sin(xξ xs − m)π sin(yξ ys − n)π f (x, y) = ∑∑f (m∆xs ,n∆ys )( )( ) mn=−∞ =−∞ (xξ xs − m)π (yξ ys − n)π
- Lướilấymẫu interlace (quin-cunx) Giảmtốc độ lấymẫumàvẫn không bị chèn phổ ξys ξxs
- Lướilấymẫulụcgiác Cho chấtlượng ảnh số tốtnhất
- Hệ thống số hai chiều Đượcmôhìnhhoábằng mô hình hộp đen vớimột đầuvàovàmột đầura Trong đóx(m,n) đượcgọi là tín hiệu vào hay tín hiệukíchthích, y(m,n) đượcgọi là tín hiệu ra hay tín hiệu đáp ứng. y(m,n) x(m,n) H[.] y(m,n) = H[x(m,n)]
- Hệ thống số hai chiều Đáp ứng xung Là đáp ứng củahệ thống 2D vớitínhiệu vào là hàm Delta Kronecker y(m,n) = x(m,n)*h(m,n) x(m,n) h(m,n) δ(m,n) h(m,n) ∞ ∞ x(m,n)*h(m,n) = ∑∑x(m − k,n − l).h(k,l) kl=−∞ =−∞ ∞ ∞ = ∑∑h(m − k,n − l).x(k,l) = h(m,n)* x(m,n) kl=−∞ =−∞ trong trường hợphệ thống là tuyến tính, bấtbiến
- Hệ thống số hai chiều Tính chấttuyến tính Hệ thống số 2D đượcgọilàtuyến tính nếuvàchỉ nếunóthoả mãn nguyên lý xếpchồng y1(m,n) x1(m,n) y(m,n) = x(m,n) = H[.] a1y1(m,n)+a2y2(m,n) a1x1(m,n)+a2x2(m,n) y2(m,n) x2(m,n) y(m,n) = H[x(m,n)]
- Hệ thống số hai chiều Tính chấtbấtbiến Hệ thống đượcgọilàbấtbiến đốivớiphéptịnh tiến trong không gian nếuvàchỉ nếu đáp ứng xung của nó không thay đổihìnhdạng, mà chỉ dịch chuyểntương ứng vớiphéptịnh tiến h(m,n) δ(m,n) H[.] δ(m-k,n-l) h(m,n ; k,l) h(m,n ; k,l) = h(m-k,n-l)
- Hệ thống số hai chiều Tínhnhânquả Mộthệ thống DSP-2D đượcgọi là nhân quả nếuvà chỉ nếu đáp ứng xung củahệ thống khác không ở ¼ mặtphẳng thứ I: xxxx xxxx xxxx xxxx Bánnhânquả nếu h(m,n) khác không ở mộtnửamặt phẳng Phi nhân quả trong trường hợp còn lại
- Hệ thống số hai chiều Tính ổn định Mộthệ thống DSP-2D đượcgọilàổn định nếuvàchỉ nếu đáp ứng xung củanólàhữu hạn ∞ ∞ ∑∑h(m,n) < ∞ mn=−∞ =−∞
- Hệ thống số hai chiều Tínhtáchrời Mộthệ thống DSP-2D đượcgọilàcóthể tách rờinếuvàchỉ nếu đáp ứng xung củanócóthể phân tích thành thừasố củahaiđáp ứng xung 1D. h(m,n)=h1(m)h2(n) x(m,n)=x1(m)x2(n) y(m,n)=y1(m)y2(n) H1[.] H2[.] y(m,n) = H2[H1[x(m,n) ]]
- Tổng chập2D Các bướcthựchiện: 0 Quay mặtnạ 180 . Dịch mặtnạ từ trái sang phảivàtừ trên xuống dưới, sao cho tâm lầnlượt điqua tấtcả các điểm ảnh. Ở mỗivị trí pixel trung tâm (m,n), lấytổng của tấtcả các tích hệ số mặtnạ lọc và pixel láng giềng, kếtquả đặt ở pixel (m,n) tương ứng trên bức ảnh ra.
- Tổng chập2D 1 -11 -10 -12 3 5 7 7 2 3 4 4 4 3 5 6 5 1 0 11 10 2 3 5 7 5 0 0 4 4 4 3 5 5 0 5 0 1 0 2 3 7 5 5 0 0 4 4 4 -1 7 5 1 1 0 2 3 5 -1 4 -1 6 6 2 0 4 4 4 3 -1
- Biến đổi Fourier hai chiều FT-2D Cặpbiến đổiFT-2D: jw1 jw2 Biến đổithuận X (e ,e ) = FT − 2D[x(m,n)] +∞ +∞ = ∑∑x(m,n)e− jw1m.e− jw2n mn=−∞ =−∞ −1 jw jw Biến đổingược x(m,n) = FT − 2D [X (e 1 ,e 2 )] = 1 jw jw jw m jw n = ∫∫ X (e 1 ,e 2 )e 1 e 2 dω dω 4π 2 1 2
- Các tính chấtcủaFT-2D Tuyếntính Dịch không gian Dịch tầnsố không gian Nhân Tổng chập
- Biểudiễnhệ thống 2D trong miền tầnsố không gian Đáp ứng tầnsố không gian jw1, jw2 X(ejw1, ejw2) Y(e e ) H(ejw1, ejw2) Y(ejw1, ejw2)= X(ejw1, ejw2).H(ejw1, ejw2) Đáp ứng biên độ H và đáp ứng pha argH củahệ thống 2D trong miền tầnsố không gian
- Biến đổi Fourier hai chiều rờirạc DFT-2D
- Biến đổi Z hai chiều(Biến đổiLauren)
- Các phép biến đổitrựcgiao2D khác, ứng dụng trong xử lý ảnh số. Biến đổisin rờirạc Biến đổicosinrờirạc Biến đổi Karuhnen-Louve Biến đổiHaar Biến đổi Gabor Biến đổi wavelet
- Bài tập: Viếtchương trình con tổng chập2D #define unsigned char BYTE Convolut-2D (BYTE *InImage, int M, int N, BYTE *Mask, int Hmask, int Vmask, BYTE *OutImage) { int m, n, i, j; for(i = 0; i <Vmask; i++) for(j = 0; j <Hmask; i++) /* Dao hang va cot */ Mask1[i][j] = Mask[M-i-1][N-j-1]; for(i = 0; i <Vmask; i++) { tam = Mask[i][j]; Mask[i][j] = Mask[M-i+1][j]; Mask[M-i+1][j] = tam; } for(j = 0; j <Hmask; i++) { tam = Mask[i][j]; Mask[i][j] = Mask[i][N-j-1]; Mask[i][N-j-1] = tam; }
- for(m = 0; i <M; m++) for(n = 0; n <N; n++) for(i = 0; i <Vmask; i++) for(j = 0; j <Vmask; i++) { *(InImage +m*N+n) }