Xử lý ảnh
Chơng 4 Làm nổi ảnh 4.1 Chỉ dẫnNội dung của phần này là giới thiệu một số công cụ cơ bản dùng để tăng cờng độ phân giải của ảnh cho con ngời cảm nhận. Những vấn đề đợc đề cập đến trong phần này: Mô hình ảnh. Lọc đồng hình. Lọc tơng phản pha. Thay đổi biểu đồ phân bố mức xám. Lọc trung vị.Chúng tôi cũng cung cấp cho bạn các chơng trình C và kết quả chạy các chơng trình này trên một số ảnh để kiểm tra. Nh các chơng khác, một số bài tập đợc cho kèm theo. Các bài tập này giúp cho bạn hiểu rõ vấn đề và có sự đánh giá tốt hơn ứng dụng của lĩnh vực này.4.2 Mô hình phản xạ độ sáng Một bức ảnh đợc tạo nên qua phép chiếu của một cảnh trong không gian ba chiều lên một mặt hai chiều hay mặt phẳng. Hàm phân phối cờng độ sáng, f(x,y), thể hiện trên mặt phẳng này đặc tính của ảnh và đợc coi rằng là một mô hình phụ thuộc vào hai yếu tố. Yếu tố thứ nhất là sự phản chiếu của rất nhiều vật thể trong cảnh và ký hiệu là r(x,y). Yếu tố thứ hai là tổng độ sáng nhận đợc từ các vật thể, yếu tố này sẽ đợc ký hiệu là i(x,y). Cờng độ ánh sáng, f(x,y), và độ chói, i(x,y), là hàm phụ thuộc vào cả hai giá trị x và y. <<),(0),(0yxiyxf (4.1) hệ số phản xạ, r(x,y), bị giới hạn bởi 0 và 1.1),(0 yxr (4.2)Trong đó r(x,y) = 0 chỉ ra rằng ở đó ánh sáng bị hấp thụ toàn phần và r(x,y) = 1 chỉ ra rằng ở đó ánh sáng phản xạ toàn phần. Nếu một bề mặt có độ phản xạ bằng 0, thì hàm c-ờng độ sáng của ảnh cho bề mặt đó cũng bằng 0. Nếu một bề mặt có độ phản xạ bằng 1, thì f(x,y) sẽ bằng với độ sáng nhận đợc bởi bề mặt này.Theo định nghĩa:43 ),(),(),(yxiyxfyxr = (4.3) ),(),(),( yxiyxryxf = (4.4)ở đây r(x,y) đặc trng cho các vật thể trong ảnh. Khi các vật mang các chi tiết trong ảnh nh đờng viền giữa các vật thể, các đờng biên trong vật thể, ., thì hàm r(x,y) sẽ chứa các tần số cao hơn i(x,y), hàm đặc trng cho độ chói và thờng có thay đổi khá đều đặn trên ảnh. Một phơng pháp dùng để tăng cờng chất lợng của ảnh là làm giảm sự tác động của yếu tố độ sáng và tăng cờng các chi tiết của ảnh. Nó đợc thực hiện bằng cách chia ảnh thành hai khối khi đi qua bộ nhấn tần số cao. Các bớc xử lý tiếp đợc mô tả trong một loại bộ lọc đặc biệt gọi là bộ lọc đồng hình.4.3 Lọc đồng hìnhMột giải pháp cung cấp độ nổi cho các vật thể trong một ảnh đ cho là làm giảm tácã động của độ chói. Nó đợc thực hiện bằng cách đầu tiên chia tín hiệu ảnh thành hai thành phần r(x,y) và i(x,y), và sau đó tăng cờng thành phần tần số cao. Điều này có thể thực hiện bằng cách lấy logarit của hàm cờng độ sáng f(x,y). Kết quả sau đó đợc lọc qua bộ lọc 2-D có đặc tính nh trong hình 4.1. Hình 4.1 Biểu diễn dạng bộ lọc đồng hình.Lấy đối lôgarit kết quả cho ta kết quả cuối cùng. Toàn bộ quá trình này đợc mô tả ở hình 4.2 hoặc theo các biểu thức sau: )),(ln()),(ln()),(ln( yxiyxryxf +=(4.5)),(*)),(ln(),( yxhyxfyxo =(4.6) dấu * là tích chập. ảnh nhận đợc tại đầu ra đợc cho bởi:),(),(yxoeyxg = (4.7) Thuật toán này sẽ làm giảm ảnh hởng của những tín hiệu chói không đồng đều trong ảnh và làm nổi các chi tiết trên ảnh. Ba tham số trong hình 4.1 (H ,L ,,D0) đợc chọn từ thực nghiệm. Đặc tuyến trong hình 4.1 có thể đợc mô tả, cho ví dụ, bằng hàm Butterworth, cho trong trờng hợp này theo biểu thức:Cho 44H(1,D(1,2)D0 L H0222121),( DD += ( )( )HLHLHLHDDDH+++=)(1),(),(),(2022122121 các trờng hợp còn lại HH( , ) 1 2= (4.8)Hình 4.2 Lọc đồng hình.Bảng 4.1 Các hệ số của bộ lọc 5 ì 5 đợc dùng theo kiểu lọc đồng hình. 0.02675 -0.001526-0.007420-0.001526 -.002675-0.001526 -0.034115 -0.059471 -0.034115 -.001526-0.007420 -0.059471 0.902895 -0.059471 -.007420-0.001526 -0.034115 -0.059471 -0.034115 -.001526-0.002675 -0.001526 -0.007420 -0.001526 0.002675Dùng chơng trình (2.1) trong chơng 2, chúng ta có thể thiết kế bộ lọc FIR có đặc tuyến mô tả bằng biểu thức (4.8). Các hệ số của bộ lọc 5 ì 5 có H = 1.0, L = 0.5 và D0 = 0.8 đợc cho ở bảng 4.1. Đáp ứng tần số đợc cho ở hình 4.3.Chơng trình lọc ảnh dùng bộ lọc FIR đợc cho ở trong chơng 3, chơng trình 3.2, có thể thay đổi thành lọc đồng hình. Chú ý rằng, nếu logarit của giá trị điểm ảnh đ đã ợc chuyển vào bộ đệm, thì bộ đệm chuyển ảnh trong hình 3.1 phải có kiểu "float" thay cho kiểu "unsigned char". Kết quả của chơng trình đợc chứa vào các biến con trỏ float thay thế cho các biến giá trị nguyên.Trớc khi lấy logarit, tốt nhất là nên chia các mức xám của ảnh đầu vào nằm trong khoảng giữa 0.0000001 đến 10. Điều này sẽ hạn chế đầu vào với phần chia của hệ số logarit, việc đó sẽ qui định sự phân ly giữa các giá trị điểm, ngaọi trừ giá trị không, giá trị này sẽ là trong hệ số logarit.Bài tập 4.1 Thay đổi chơng trình 3.2 để đa ra bộ lọc đồng hình. Chúng ta sẽ kiểm tra khái niệm lọc đồng hình. Hình 4.5 đa ra một ảnh sẽ đợc sử dụng để kiểm tra. Hình 4.6 trình bày một ảnh sau khi áp dụng lọc đồng hình với bộ lọc có hệ số cho trong bảng 4.1. Bạn chú ý rằng nhiều đặc điểm trong ảnh bây giờ trở nên rõ ràng hơn. Tuy nhiên, lọc đồng hình đ không di chuyển một vài ảnh hã ởng ánh sáng, cũng nh các vùng phản chiếu và bóng tối.Bài tập 4.2 1. Thiết kế bộ lọc 7 ì 7 dùng xấp xỉ hàm Butterword cho bởi biểu thức (4.8) với H = 1.0, L= 0.25 và D0 = 0.8 và H = 1.0, L= 0.25 và D0 = 0.6 . Thiết kế bộ lọc FIR 7 ì 7 dùng xấp xỉ hàm bộ lọc thông cao Butterword đợc cho trong ví dụ 2.6 trong chơng 2.2. Dùng bộ lọc có các hệ số cho trong bảng 4.1 và thiết kế để lọc ảnh cho trên đĩa với file có tên là "TESH.IMG".3. Bây giờ lọc ảnh "TESH. IMG" với bộ lọc thông cao có cùng đặc tuyến. 4. Lặp lại phần 2 và 3 trên ảnh "PISTON.IMG" có sẵn trên ảnh đi kèm45ln[f(x,y)]H(1, 2) eo(x ,y)ảnh đ ãlọc f(x,y)o(x,y) 5. Giải thích các kết quả khác nhau thu đợc từ bài tập này.Hình 4.3 ảnh 3-D thiết kế bộ lọc 5 ì 5 với D0 = 0.8, L= 0.5. Hệ số đợc cho trong bảng 4.1.Hình 4.4 Đồ thị ln(x).46 Hình 4.5 ảnh dùng kiểm tra lọc đồng hình.Hình 4.6 ảnh đ lọc đồng hình.ã47 4.4 Lọc pha tơng phảnGiải pháp lọc pha tơng phản đợc mô tả tốt nhất bằng biểu đồ hình 4.7. ảnh I(x,y) đi qua bộ lọc thông toàn bộ với các đặc tuyến pha mô tả ở hình 4.8.Hình 4.7 Sơ đồ khối của lọc pha tơng phản.Hình 4.8 Đặc tuyến pha và biên độ của PCF.Lọc pha tơng phản (PCF) đợc dùng trong lọc không gian để hoàn trả lại các chi tiết có thể nhìn thấy đợc với gradient pha. Phổ pha của ảnh mang theo nhiều tin tức về ảnh hơn là biên độ phổ. Chúng ta sẽ làm rõ điều này trong chơng 7. Có lẽ sẽ là hợp lý hơn nếu chúng ta xử lý trực tiếp góc pha của ảnh để làm nổi ảnh hơn là xử lý biên độ ảnh. Từ sơ đồ khối hình 4.7 ta có thể viết :),(),(),(),( yxIyxhyxIyxg =(4.9)Lấy biến đổi Fourier cả hai vế của (4.9) ta có : G I H I( , ) ( , ) ( , ) ( , ) 1 2 1 2 1 2 1 2= hoặc GIH( , )( , )( , ) 1 21 21 21= (4.10)Khi H(1,2) = 1 với D(1,2) < c và H(1,2) = -1 với D(1,2) c thì 48 H(1 , 2)+I(x,y)g(x,y)cD(1 , 2)(1 , 2)1D(1 , 2)H (1 , 2) GI( , )( , ) 1 21 20= với D(1,2) < c (4.11) và GI( , )( , ) 1 21 22= với D(1,2) c (4.12)thì đây là bộ lọc thông cao (HPF) đối xứng vòng tròn, với một sự với chuyển tiếp đột ngột từ giải thông sang dải chắn. Hình 4.9 (a) Bề mặt của Pít tông; (b) Lọc bằng bộ lọc PCF với điểm 25.1=c (c) Lọc bằng bộ lọc PCF với điểm 4.1=c; (d) Lọc ảnh với bộ lọc HPF có miền chuyển tiếp dốc có điểm cắt 4.1=c.4.5 Thay đổi lợc đồ mức xámLợc đồ mức xám (Histogram) trong một ảnh đợc định nghĩa bởi h in in( )( )= (4.13) ở đây n(i) = tổng các mức xám trong ảnh có giá trị i và n = tổng số các mức xám trong ảnh. 49 Sự phân bố p(i) hoặc n(i) có thể cung cấp thông tin về dáng điệu của ảnh. Một ảnh có phân bố mức xám giống nh hình 4.10a thì có sắc màu tối, một ảnh phân bố mức xám nh hình 4.10b thì có sắc màu sáng. Vì lý do này, ta có thể làm nổi ảnh bằng cách thay đổi phân bố n(i) để chỉnh lại các sắc màu của các mức xám trên ảnh. 4.5.1 Xử lý tơng phản Việc mở rộng mức xám tuyến tính có thể thực hiện bằng cách ánh xạ mức xám của ảnh gốc qua hàm ánh xạ tuyến tính chỉ trên hình 4.11. Đó là:255minmaxminrrrrs= (4.14)ở đây, r là một mức xám trên ảnh gốc và s là mức xám đ qua ánh xạ. ã ảnh ánh xạ sẽ có mức xám kéo dài trong khoảng giữa 0 và 255. Điều này có thể đa đến một vài cải thiện đối với ảnh, và đợc sử dụng nh công đoạn cuối cùng trong tất cả chơng trình lọc đợc cung cấp trong quyển sách này.Hình 4.10 (a) Lợc đồ mức xám của một ảnh có sắc màu tối; (b) Lợc đồ mức xám của một ảnh có sắc màu sáng.Hình 4.11 Thang chia mức xám tuyến tính.4.5.2 San bằng lợc đồ mức xámSự biến đổi biểu đồ phân bố các mức xám có thể đạt đợc một cách gần đúng bằng cách xét hàm mật độ xác suất liên tục pr(r) thay cho h(i). Cái mà chúng ta cần đến là có đợc một phép đổi ánh xạ mức xám trên ảnh gốc, thay biến r bởi một biến mới s vì vậy sự phân bổ mức xám trên ảnh biến đổi theo công thức sau:)(rTs = (4.15)Biến đổi ngợc đợc cho bởi50 r rmax rmin 0 255 sn(i)i2550 an(i)i2550 b )(1sTr= (4.16)Trong đó )(rT và )(1sT là hàm đơn giá trị đơn điệu tăng theo r và s.Nếu )(spschỉ rõ hàm mật độ xác xuất của ảnh đợc biến đổi thì từ lý thuyết xác xuất ta có thể viết:)(1)()(sTrrsdsdrrpsp== (4.17)Chúng ta giả thiết rằng, tại một thời điểm, ảnh gốc và ảnh qua ánh xạ là các hàm liên tục với hai biến không gian độc lập x và y.Bây giờ h y xem đến sự biến đổiã==rrdprTs0)()( (4.18)Trong đó vế bên phải đợc biết đến nh hàm phân bố tích luỹ (cumulative distribution function - CDF). Từ công thức (4.18) chúng ta có thể viết:)(rpdrdsr= (4.19)Thay thế công thức (4.19) vào (4.17) chúng ta có0.1)(1)()( ==rprpsprrs (4.20)Vì vậy, phép biến đổi cho bởi công thức (4.18) cho ảnh mức xám có phổ đồng đều. Biến đổi trên có thể đợc viết dới dạng tổng quát hoá nh sau:==kjkjns0)( (4.21)Hoặc, chúng ta muốn ánh xạ ảnh mức xám nằm giữa 0 và 255, chúng ta có thể thay đổi ks nh sau:25502550ssssskk= (4.22)Chú ý rằng vì công thức (4.21) là một xấp xỉ của công thức (4.18) bằng cách cho rằng ảnh ánh xạ có thể có lợc đồ mức xám không thực sự đồng đều. Một nhân tố khác cũng không đợc quan tâm trong quá trình biến đổi, đó là với một số ảnh mà các mức xám không phủ kýn các miền thì CDF sẽ giữ lại hằng số ở những miền không đợc phủ kýn đó. Những nhân tố này sẽ cho kết quả trong ảnh ánh xạ mà ở đó lợc đồ mức xám là xấp xỉ gần nhất với lợc đồ mức xám đồng đều đợc rút ra từ ảnh gốc. Chơng trình 4.1 cho dới đây dùng cho việc san bằng lợc đồ mức xám.Chơng trình 4.1 "UNI_HIST.C". 51 /* PROGRAM 4.1 “UNI_HIST.C”. Histogram equalization. *//* Histogram equalization. */#define MAX 16384#include <stdio.h>#include <conio.h>#include <io.h>#include <math.h>#include <ctype.h>#include <stdlib.h>void main() { int image_length,image_width,i,j,ch,true_length;unsigned long int histo[256],s[256];char file_name[14];unsigned char buff[MAX];int k,n,ind;double nsq;float range;FILE *fptr,*fptr2;clrscr();printf("Enter file name of image -->");scanf("%s",file_name);fptr=fopen(file_name,"rb");if(fptr==NULL) { printf("%s does not exist.",file_name); exit(1); }printf("Enter file name for storing mapped image-->");scanf("%s",file_name);gotoxy(1,3);printf(" ");ind=access(file_name,0);while(!ind) { gotoxy(1,3); printf("File exists. Wish to overwrite? (y or n)-->"); while(((ch=tolower(getch()))!='y')&&(ch!='n'));putch(ch);switch(ch) { case 'y':ind=1;break; case 'n':gotoxy(1,3);printf( " ");gotoxy(1,2);printf(" ");gotoxy(1,2);printf("Enter file name -->");scanf("%s",file_name);52 [...]... trung bình ảnh gốc với ảnh kết quả lọc trung vị 60 Shift Hàng thứ n1 từ file ảnh vào đến hàng cuối cùng của bộ đệm chuyển đổi ảnh (ví dụ n1 từ 0 đến độ dài ảnh - 1) Bộ đệm chuyển đổi ảnh N ìrộng ảnh Độ N File ảnh vào yn2= trung bình {W(N1-k1,n2-k2)}; N1=(N-1)/2; k1=-N1đến N1, và k2=-N1 đến N1, n2=0 đến (độ rộng ảnh- 1) Đến file ảnh ra Bộ đệm N k1,k2 Vùng hỗ trợ cho bộ lọc trung vị Trong ví dụ này N=3 N... xem xét ảnh trên hình 4.12a Đây là ảnh của một ngời tơng phản với nền sáng Khi chụp ảnh này đã không dùng đèn để giảm độ sáng của nền ảnh sau khi san bằng mức xám đợc cho trên hình 4.12b Dễ dàng nhận thấy đợc sự thay đổi so với ảnh gốc ảnh cung cấp cho bạn thử nghiệm đợc cung cấp sẵn trên đĩa kèm theo với tên "ISLAM.IMG" Hình 4.12 (a) ảnh gốc dùng cho san bằng lợc đồ mức xám Hình 4.12 (b) ảnh sau khi... tra chơng trình trên ảnh "ISLAM.IMG" 2 Tơng tự nh câu 1, nhng xuất phát từ các công thức (4.35), (4. 37) , (4.39), và (4.41) 3 Lập chơng trình cho phép bạn chọn hàm san bằng, gaussian, mũ, Rayleigh, hyperbolic (căn bậc 3), hoặc hyperbolic (logarith), sau đó ánh xạ ảnh thích hợp 59 Hình 4. 17 là ảnh "ISLAM.IMG" sau khi sử dụng phân phối gaussian với à = 125 và / 1. 073 = 150 Chú ý rằng ảnh này có hiển thị... lọc trung vị trên ảnh thu đợc khi dùng biểu thức lợc đồ mức xám và giới thiệu trên hình 4.12b Chú ý rằng một ảnh thu đợc khi dùng biểu thức lợc đồ mức xám là một ảnh có nhiễu Kết quả của sử dụng bộ lọc trung vị kích thớc 5 ì 5 đợc thể hiện trên hình 4.19 Có một vài cải thiện về chất lợng ảnh đợc hiển thị ở đây Tuy nhiên, chất lợng ảnh sẽ tốt hơn nếu ta đem trung bình ảnh gốc với ảnh kết quả lọc trung... xác xuất tơng ứng của ảnh gốc và ảnh ánh xạ riêng biệt Để chuyển đổi ảnh gốc thành ảnh có lợc đồ mức xám các mức xám đồng đều chúng ta dùng hàm ánh xạ CDF, ví dụ: r s = T (r ) = p r ( ) d (4.23) 0 Nếu ảnh ánh xạ đã có sẵn, thì các mức xám của nó có thể đ ợc ánh xạ sang phổ lợc đồ mức xám đồng đều qua CDF nh sau: z v = G ( z ) = p z ( )d (4.24) 0 Bởi vì ảnh ánh xạ vừa nhận đợc từ ảnh gốc, thì sau đó... lên G(z) thu đợc mức xám ánh xạ z1 Bởi vì trong thực tế chúng ta thờng xử lý ảnh rời rạc chứ không phải ảnh liên tục, nên CDF sẽ đợc viết lại nh sau: r T ( r ) = n o (i ) (4.28) i =1 z và G ( z ) = n m (i ) (4.29) i =0 ở đây n0(i) và nm(i) là các mảng mà phần tử thứ i của nó chứa tổng số mức xám, có giá trị i trong ảnh gốc và ảnh ánh xạ Sự xấp xỉ nảy sinh trong trờng hợp rời rạc, dẫn đến khó có thể... thị nhiều chi tiết hơn ảnh san bằng mức xám trên hình 4.12b Tuy nhiên, bạn sẽ thử nghiệm với và à khác nhau để phát hiện ra u điểm của phơng pháp này Hình 4. 17 ảnh xử lý dùng phân phối Gauss để biến đổi lợc đồ mức xám 4.6 Lọc trung vị Trung vị M của một tập hợp số đợc xác định sao cho một nửa các giá trị trong tập lớn hơn M hoặc một nửa các giá trị nhỏ hơn M Lọc trung vị trong ảnh đợc áp dụng bởi đầu... (r ) và G (z ) là những hàm ánh xạ chúng ánh xạ ảnh gốc và ảnh chuyển đổi thành ảnh san bằng mức xám Vì thế, công thức (4.28) và (4.29) sẽ đợc viết lại nh sau: r T (r ) = no (i) T (0) i =0 T ( 255) T (0) 255 (4.31) 56 z G( z) = nm (i) G(0) i =0 G (255) G (0) (4.32) 255 Việc quy định lợc đồ mức xám Có một kỹ thuật chuẩn để sinh ra lợc đồ mức xám cho ảnh chiếu Những kỹ thuật này đợc mô tả sau đây... chọn một cửa sổ có kích thớc N, ở đây N chẵn Cửa sổ này hoặc miền cung cấp sẽ đợc quét qua ảnh Điểm trung tâm của miền cung cấp, tại bất kỳ nơi nào trong ảnh, đợc thay thế bằng trung vị của các giá trị điểm của các miền lân cận Lọc trung vị làm cho điểm ảnh trở nên nổi trội hơn so với các điểm xung quanh Nó loại trừ ảnh hởng của các nhiễu kim, cải thiện khả năng chống nhiễu của tín hiệu Lọc trung vị có... Chú ý rằng h(z) giảm khoảng 90 phần trăm giá trị tối đa của nó tại z à = / 1. 073 Do đó, biểu hiện bề rộng của phân phối Tham số và à có thể đợc điều chỉnh cho đến khi đạt đợc kết quả mong muốn trên ảnh ra Cần chú ý rằng thực hiện phép chiếu các lợc đồ mức xám khác nhau phụ thuộc vào ảnh, bởi vậy cần phải tăng cờng ảnh Tuyến tính từng đoạn (Piecewise linear) Một cách tiếp cận xen kẽ linh động hơn . 0.02 675 -0 .00152 6-0 .0 074 2 0-0 .001526 -. 002 67 5-0 .001526 -0 .034115 -0 .059 471 -0 .034115 -. 00152 6-0 .0 074 20 -0 .059 471 0.902895 -0 .059 471 -. 0 074 2 0-0 .001526 -0 .034115. -0 .059 471 -. 0 074 2 0-0 .001526 -0 .034115 -0 .059 471 -0 .034115 -. 00152 6-0 .002 675 -0 .001526 -0 .0 074 20 -0 .001526 0.002 675 Dùng chơng trình (2.1) trong chơng 2,