Xử lý ảnh
chơng2Các hệ thống hai chiều2.1 Chỉ dẫnCác tín hiệu vốn là hai chiều thì phải đợc xử lý bằng kỹ thuật xử lý tín hiệu hai chiều. Các điểm ảnh đợc coi là một dạng tín hiệu hai chiều, vì vậy việc xem xét các kiến thức cơ bản của hệ thống hai chiều (2-D) là cần thiết. Trong chơng này chúng ta sẽ xem xét biểu diễn tần số và biểu diễn không gian của tín hiệu hai chiều, và cung cấp kiến thức cần thiết cho việc phát triển các kỹ thuật xử lý ảnh hai chiều nh là nổi ảnh, trơn ảnh và khôi phục ảnh. 2.2 Các tín hiệu hai chiềuMột tín hiệu lấy mẫu hai chiều đợc biểu diễn dới dạng một mảng hai chiều x(n1TV,n2TH) (V: Vertical - chiều dọc, H: Horizontal - chiều ngang). ở đây n1, n2 là số nguyên và TV, TH là khoảng cách lấy mẫu theo chiều ngang và chiều dọc. x(n1TV, n1TH) thờng đợc kí hiệu tắt là x(n1,n2) và biểu diễn cho cờng độ sáng hay là biên độ tín hiệu tại điểm (n1,n2) trong miền không gian. Hình 2.1 giới thiệu một phép biểu diễn trong miền không gian, ở đây cờng độ sáng của tín hiệu đợc kí hiệu bởi chiều cao tại điểm x(n1TV, n2TH). Chú ý rằng TV là khoảng cách lấy mẫu giữa hai cột dọc kế tiếp nhau, TH là khoảng cách lấy mẫu giữa hai dòng ngang kế tiếp nhau của tín hiệu 2-D.Mặc dù một tín hiệu lấy mẫu 2-D có thể xử lý nh các d y của tín hiệu lấy mẫu một chiềuã bằng cách xử lý tất cả các hàng (cột) một cách tuần tự song cách tiếp cận này không cho một kết quả mong đợi nh khi xử lý hai chiều. Ví dụ, nếu chúng ta dùng một bộ lọc làm nổi đờng biên ảnh 1-D, cụ thể đó là một bộ lọc thông cao, trên một ảnh bằng cách xử lý từng hàng một, thì đờng biên sẽ phần lớn đợc làm nổi bật dọc theo các đờng thẳng đứng. Các đ-ờng biên ảnh nằm theo các đờng nằm ngang sẽ không đợc làm nổi một chút nào và các đ-ờng biên nằm theo các hớng khác ngoài hai hớng này sẽ nhận đợc hiệu ứng làm nổi ảnh ít hơn các đờng biên dọc. Để đạt đợc hiệu quả nh nhau theo mọi hớng, tín hiệu đợc lấy mẫu hai chiều phải đợc xử lý qua một hệ thống 2-D (Hình 2.2).Trong hệ thống tuyến tính bất biến - TTBB (Linear Shift Invariant - LSI), đáp ứng đầu ra có thể tính theo công thức : ),h(n*),(),(212121nnnxnny = (2.1)Dấu * đợc hiểu là tích chập và h(n1,n2) là đáp ứng xung của hệ thống 2-D. Biểu thức (2.1) có thể viết là: ===1 2),(),(),(22112121k kknknhkkxnny (2.2)7n1Tv2Tv Tv 2TH TH x(n1,Tv,n2,TH) n2TH Hình 2.1 Biểu diễn trong miền khoảng cách.2.3 Một số d y 2-D thông dụng ãChúng bao gồm:1. D y xung đơn vị :ã====lại còn hợp trường các vớivới 00 1),(),(2121021nnnnunn(2.3)2. D y nhảy bậc đơn vị :ã=lại còn hợp trường các vớivới 00, 1),(21211nnnnu (2.4) 3. D y hàm mũ:ã=lại còn hợp trường các vớivới 00, ),(21212121nnaannxnn (2.5) 4. D y tín hiệu hình sin (phức):ã)(212211),(nnjennx+= - <n1,n2< + (2.6)Hình 2.2 Xử lý tín hiệu 2-D.8h(n1,n2)x(n1,n2) y(n1,n2) 2.4 Đáp ứng tần số của hệ thống 2-D -TTBBĐặt )(212211),(nnjennx+= Đáp ứng ra có thể rút ra khi dùng biểu thức (2.2). [ ] ==+=1212)()(21),(),(222111k kknknjkkhenny (2.7) hoặc ==++=1 222112211),(),(21)()(21k kkkjnnjkkheenny (2.8)Công thức này có thể viết lại thành ),(),(),(212121Hnnxnny = Tín hiệu ra là tín hiệu hình sin phức (sinusoid) hoàn toàn có cùng tần số nh tín hiệu vào, nhng biên độ và góc pha thì bị thay đổi bởi hàm khuyếch đại phức H(1,2). Hàm khuếch đại này gọi là đáp ứng tần số và đợc cho bởi )(212122112211),(),(kkjkkkkekkhH+===== (2.9)Biểu thức )(2211kkje+ đợc gọi là nhân. Nếu khoảng cách cách lấy mẫu TV,TH đ đã ợc biết thì biểu thức (2.9) có thể viết lại thành ===2211),(221),(),(kTvkTukjHVkHVeTkTkhvuH (2.10)1, 2 có thứ nguyên là radian/đơn vị, còn u và v có thứ nguyên là vòng/đơn vị. Đơn vị ở đây có thể là đơn vị khoảng cách (nh cm, inch) hoặc là đơn vị thời gian (nh giây). Việc chọn đơn vị (thời gian hoặc khoảng cách) phụ thuộc nguồn gốc của ảnh, đó là một phép chiếu từ không gian ba chiều lên mặt phẳng hai chiều. Nếu ta xử lý với một ảnh lấy ra trực tiếp từ ma trận CCD camera thì TV và TH (và do đó là đơn vị) phải tính theo chiều không gian (xem hình 2.3). Mặt khác, với một ảnh truyền hình thì TV và TH phải theo chiều thời gian (xem hình 2.4).Từ (2.9) ta có thể viết ),(),2(2121HH =+ ),()2,(2121HH =+ (2.11)),()2,2(2121HH =++ Và từ (2.10) ta có thể viết ),(,1vuHvTuHV=+9 ),(1, vuHTvuHH=+(2.12)),(1,1vuHTvTuHHV=++Hình 2.3 TV và TH cho lấy mẫu ảnh trên một ma trận camera CCD.Hình 2.4 TV và TH cho một ảnh quét xen kẽ.Hàm H(1,2) xác định trên toàn bộ miền ( ) ( ) 1 2 và là hàm tuần hoàn trong miền tần số với chu kì tuần hoàn là 2 đối với 1 và 2. H(u,v) xác định trên miền ( ) ( )HHVVTvTTuT21212121 và là hàm tuần hoàn với chu kì 1/TV và 1/TH cho u và v. Có thể chiếu H(1, 2) hoặc H(u, v) lên miền chuẩn hoá, ở đây /1, /2 [ ] 11, bằng cách đặt /1=1/; /2=2/ hoặc /1=2uTV; /2=2vTh . /1 và /2 gọi là tần số chuẩn hoá, hàm H(/1, /2 ) có thể viết lại 10 TVTH )(212122111 2),(),(kkjk kekkhH+= (2.13)Nếu chúng ta hạn chế h(n1,n1) chỉ lấy các giá trị thực thì đáp ứng tần số thoả m n:ã),(),(2121jjjjeeHeeH= (2.14) H* = liên hợp phức của H. Điều này dẫn đến H(1,2) đối xứng (Hình 2.5). Hình 2.5 Đối xứng tâm.Chú ý rằng nếu x(n1,n2) = (n1,n2), thì biểu thức (2.2) trở thành y(n1,n2) = h(n1,n2). Vì lý do này mà h(n1,n2) đợc gọi là đáp ứng xung, hoặc là đáp ứng biên độ, của hệ thống 2-D. Bài tập 2.1 Tính biểu thức đáp ứng tần số của một hệ thống với đáp ứng xung cho bởi =0.05.0125.0125.0125.0),(21nnh Chứng minh rằng công thức tính đáp ứng tần số có thể tách đợc.2.5 Tính đáp ứng xung từ đáp ứng tần số Đáp ứng tần số của h(n1,n2) đợc cho bởi : +=1 2)(21212211),(),H(n nnnjennh (2.15)Xét tích phân +21)(2122211),(41ddeHkkj (2.16)Thay biểu thức (2.15) vào biểu thức (2.16) chúng ta đợc21)()(2121 222112211)),((41ddeennhn nkkjnnj ++Và có thể viết thành11A B B*A*12 [ ] [ ]2)(1)(2121221111 22121),(dedennhknjknjn nVà biến đổi thành ),()()(),(212211211 2kkhknknnnhn n= Điều này có nghĩa là đáp ứng xung có thể tính từ đáp ứng tần số qua mối quan hệ: h(n1,n2) = +21)(2122211),(41ddeHnnj (2.17)Nếu đáp ứng tần số đợc cho dới dạng hàm của u,v (vòng/đơn vị), thì biểu thức (2.17) có thể viết thành vdduvuHTTnnhVVHHHVTTTTnvTnuTjHVe +=21212121_)(221211),(),( (2.18)Hoặc cho tần số chuẩn hoá: +=112111)(21212211),(41),(ddeHnnhnnj (2.19)Ví dụ 2.3 Cho đáp ứng tần số = 0||,|| 1),(2121lại còn hợp trường cácbaH(xem hình 2.10), h y tính đáp ứng xung.ãHình 2.10 Ví dụ 2.3.Giải Từ phơng trình (2.17) chúng ta có thể viết :121 a-abb -- 2 22112121)(221)sin(bn. )sin(an = 2121= 41),(22112211nndededdennhbbnjaanjaabbnnj += Bởi vì đáp ứng tần số là hàm tách đợc của hai biến 1và 2 nên đáp ứng xung cũng là một hàm hai biến tách đợc. Khái niệm tách đợc ở đây nghĩa là có thể phân tích h(n1,n2) = f1(n1).f2(n2). Ví dụ 2.4 Tìm đáp ứng xung của một bộ lọc thông thấp đối xứng vòng tròn lý tởng đợc mô tả nh sau (xem hình 2.11 và 2.12):+=lại còn hợp trường các 0 1),(2222121ReeHjjGiải Có thể dễ dàng thấy nếu ),(21Hlà một hàm đối xứng vòng tròn lý tởng, cụ thể là )(),(222121+= HH thì ),(21nnh cũng là một hàm tuần hoàn đối xứng vòng tròn, tức là h n n h n n( , ) ( )1 2 1222= +. Vì vậy cách dễ dàng nhất để tìm ),(21nnhlà tìm h(n1, 0) và hàm 2221+ nn theo n1. Chúng ta rút ra )0,(1nhtừ: =Anjddenh21211141)0,( e41= RR-j212=12121)cos(241)0,(12222211dRddenhnRRRRnjTa có )sin(1R= dRd )cos(1= dcos241)0,(/2/2-sin2211=jRneRnhhoặc =deRnnRnhjRn2/2/sin21111cos)(12)0,(13 Hình 2.11 Ví dụ 2.4.Hình 2.12 Ví dụ 2.4.Biểu thức này có thể biểu diễn thành h nRnJ Rn( , ) ( )111 102=ở đây J1(x) = hàm Bessel loại 1.Vì thế : 222122211212)(),(nnnnRRJnnh++=Không phải lúc nào cũng dễ dàng rút ra đợc một biểu thức phân tích đáp ứng xung nh trên. Ví dụ dới đây minh hoạ việc sử dụng phép tích phân số để thu đợc ),(21nnh.Ví dụ 2.5 Tính đáp ứng xung của bộ lọc thông thấp Butterworth đối xứng vòng tròn có đáp ứng tần số cho bởi141R-R--2 ),(1211),(212221RDHo+=ở đây 22212121),(,,+= Rvà D0 = 3-dB. (Giả thiết rằng 3.0=oD).Dùng biểu thức trong công thức 2.17 để tính đáp ứng xung với .5, .,5,5, .,521+=+= nnGiải Vì ),(21Hlà thực và đối xứng vòng tròn, công thức (2.17) có thể viết đơn giản lại là+=21221121221)cos(),(41),( ddnnHnnhđơn giản hơn nữa ta có thể viết 10 02222111221)cos(),()cos(1),( ddnHnnnh = (2.20)Lời giải của bài toán này sẽ đợc đa ra thông qua một chơng trình viết bằng ngôn ngữ C. Ngôn ngữ C đợc sử dụng rộng r i bởi tính linh hoạt của nó. C phù hợp cho các ứng dụngã khác nhau.Trớc khi bạn viết chơng trình, bạn cần nghiên cứu phơng pháp tính tích phân kép. Sau đây ta sẽ phát triển thêm qui tắc Simpson để tính tích phân kép.Qui tắc tính tích phân của Simpson đợc viết nh sau:=mxxdxxfI0)(+++===2, .4,21, .3,10)()(2)(4)(3mimimiixxfxfxfxflẻchẵn ở đây ;/)(0mxxmx=và m là một số lẻ.Với tích phân képdxdyyxfInmyyxx),(00=Sử dụng qui tắc Simpson ta có thể viết nh sau:dyyxfyxfyxfyxfImimimiiyyxn+++===2, .4,21, .3,10),(),(2),(4),(30chẵnlẻvậy có thể viết15 dyyxfyxfyxfyxfImyyxn=),(),(),(),(]241 .14242[32100Lại áp dụng qui tắc Simpson vào công thức trên ta có= ]241 .14242[33yxI14224241),( .),(),(),(),( .),(),(),(),( .),(),(),(21012111010201000nmmmmnnyxfyxfyxfyxfyxfyxfyxfyxfyxfyxfyxfyxf (2.21)ở đây mxxmx/)(0= nyymy/)(0= m và n là số lẻ.Nếu ),(21Hlà thực và có tính đối xứng vòng tròn, thì đáp ứng xung có thể đợc tính từ tích phân kép2122112100221)cos()cos(),(1),(ddnnHnnh=Dùng công thức trên có thể viết một chơng trình C để thu đợc đáp ứng xung từ đáp ứng tần số. Dới đây là chơng trình đợc viết bằng Turbo C 2.0.Chơng trình 2.1 "FILTERD.C". Tính đáp ứng xung từ đáp ứng tần số/*Program to compute the impulse from the frequency response.*/ /* Chuong trinh nay dung de tinh dap ung xung cua bo loc 2-D tuan hoan doi xung. Dap ung tan so cua bo loc duoc cho boi nguoi dung trong chuong trinh con tinh ham H(float w1, float w2).16 [...]... hình 2. 14, và hầu nh đúng với đáp ứng tần số gốc đợc tính từ biểu thức của H (1, 2) Bảng 2.2 Một phần t đáp ứng xung của bộ 0.89 640 8 -0 . 047 501 -0 .017311 -0 .008811 -0 . 047 501 -0 .031265 -0 .0 148 98 -0 .00 749 4 -0 .017311 -0 .0 148 98 -0 .009506 -0 .005306 -0 .008811 -0 .00 749 4 -0 .005306 -0 .003352 -0 .003712 -0 .003578 -0 .002 844 -0 .001956 -0 .002135 -0 .001873 -0 .00 149 6 -0 .001102 lọc thông cao -0 .003712 -0 .002135 -0 .003578... -0 .002135 -0 .003578 -0 .001873 -0 .002 844 -0 .00 149 6 -0 .001956 -0 .001102 -0 .001 242 -0 .000 743 -0 .000 743 -0 .00 047 3 Bài tập 2.2 Thay hàm H(w1,w2) trong chơng trình 2.1 để tính đáp ứng xung trên cửa sổ 11 ì 11 có tâm tại điểm gốc, theo hàm truyền đạt đợc cho dới đây: 1 Lọc thông thấp: H (1 , 2 ) = e 0. 347 D (1 , 2 ) / D0 2 Lọc thông cao: H (1 , 2 ) = e 0. 347 D / D (1 , 2 ) Với giả định đờng tròn 3-dB nằm tại mức... xung của bộ lọc thông thấp D0 = 0.3 0.103591 0. 047 501 0.017310 0.008810 0.003712 0.002135 0. 047 501 0.031265 0.0 148 98 0.00 749 4 0.003578 0.001873 22 0.017310 0.008810 0.003712 0.002135 0.0 148 98 0.00 749 4 0.003578 0.001873 0.009506 0.005306 0.002 844 0.00 149 6 0.005306 0.003352 0.001956 0.001102 0.002 844 0.001956 0.001 242 0.000 743 0.00 149 6 0.001102 0.000 743 0.00 047 3 Ví dụ 2.6 Lặp lại bài toán trớc với bộ lọc... DO=0.5*pi; // cut-off R2=w1*w1+w2*w2; a=0 .41 4*DO*DO/(R2+0 .41 4*DO*DO); return(a); } /*************************************** 20 Vi du ve mot so ham khac 1.Laplacian Operator a=R2; 2 Phase contrast filters if(R2 . printf(" for 3-D plotting. "); printf(" ;-- -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- - -- & quot;);/* Chuan bi du lieu cho 3-DDu lieu duoc. -0 .017311 -0 .008811 -0 .003712 -0 .00213 5-0 . 047 501 -0 .031265 -0 .0 148 98 -0 .00 749 4 -0 .003578 -0 .00187 3-0 .017311 -0 .0 148 98 -0 .009506 -0 .005306 -0 .002 844 -0 .00 149 6-0 .008811