Giáo trình xử lý ảnh y tế Tập 1a P7 ppt

10 309 1
Giáo trình xử lý ảnh y tế Tập 1a P7 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

55 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); ind=access(file_name,0); } } fptr2=fopen(file_name,"wb"); nsq=(double)filelength(fileno(fptr)); printf("\nIs this a square image ? (y or n) "); while(((ch=tolower(getch()))!='y')&&(ch!='n')); putch(ch); switch(ch) { case 'y': image_length=image_width=sqrt(nsq); break; case 'n': printf("Enter image width > "); scanf("%d",&image_width); image_length=(int)(nsq/image_width); } printf("\n image size= %d x %d",image_length,image_width); true_length=0.95*image_length; /* Generate Histogram.*/ for(i=0;i<256;i++) histo[i]=0; 56 for(i=0;j<true_length;i++) for(j=0;j<image_width;j++) histo[getc(fptr)]++; /* Generate CDF. */ s[0]=histo[0]; for(i=1;i<256;i++) s[i]=s[i-1]+histo[i]; /* scaling*/ range=(float)(s[255]-s[0]); for(i=1; i<256; i++) s[i]=(int)((float)(s[i]-s[0]))*255.0/range; /* Mapping into a uniform histogram.*/ rewind(fptr); k=0 ; for(i=0; i<image_length; i++) for(j=0; j<image_width; j++) { ch=s[getc(fptr)]; buff[k]=(unsigned char)ch; k++; if((k==MAX)||(ch==EOF)) { for(n=0;n<k;n++) putc((int)buff[n],fptr2); k=0; } } fclose(fptr); fclose(fptr2); printf("\n\nDONE."); } Để kiểm tra việc san bằng lược đồ mức xám chúng ta 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". 57 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 san bằng lược đồ mức xám. 4.5.3 Thay đổi lược đồ mức xám Kỹ thuật san bằng lược đồ mức xám đưa ra một phương pháp trong đó có thể nâng cao chất lượng ảnh qua việc làm bình đẳng tầm quan trọng giữa các mức xám. Tuy nhiên, có thể trong một vài ứng dụng người ta cần nâng cao mức xám hay một khoảng mức xám nào đó. Vì vậy, cần phải ánh xạ ảnh mức 58 xám để lược đồ mức xám của nó tuân theo một phân phối đặc biệt. Chúng ta thực hiện điều này bằng cách nào, hãy quay lại một chút với ảnh mức xám liên tục, để )(rp r và )(zp z là hàm mật độ 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 r dprTs 0 )()(  (4.23) 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 z dpzGv 0 )()(  (4.24) Bởi vì ảnh ánh xạ vừa nhận được từ ảnh gốc, thì sau đó nó sẽ ánh xạ vào cùng ảnh có lược đồ mức xám được làm bằng nhau (đồng bộ). Đó là: )()( rTzG  (4.25) hay    z r rz dpdp 0 0 )()(  (4.26) Trong đó r và z là hai biến tương ứng thể hiện mức xám của ảnh gốc và ảnh ánh xạ. Cái ta cần là thu được z như là một hàm trực tiếp của r, nghĩa là: )())(( 1 rFrTGz   (4.27) Để có được giải pháp theo công thức giải tích (4.26) cho trường hợp chung có thể là khó khăn hoặc không thể làm được. Tuy nhiên, giải pháp đồ thị là rất có thể, và hình 4.13 minh hoạ thủ tục cho giải pháp này. Với một mức xám được chọn r 1 thu được T(r 1 ). Chiếu T(r 1 ) lên G(z) thu được mức xám ánh xạ z 1 . 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 i o inrT 1 )()( (4.28) và    z i m inzG 0 )()( (4.29) ở đây n 0 (i) và n m (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 59 hợp rời rạc, dẫn đến khó có thể đạt được các giá trị của r và z để )(rT đúng bằng )(zG . Tuy nhiên có thể tìm một giá trị của z sao cho với bất kỳ r biểu thức sau đây được thoả mãn: )1()()1(     zGrTzG (4.30) (xem hình 4.14.) Hình 4.13 Biểu diễn đồ thị của công thức (4.26). Hình 4.14 Biểu diễn đồ thị của trường hợp mẫu. Do vậy, dựa trên các vấn đề thảo luận ở trên và hình 4.14 chúng ta có thể thực hiện từng bước theo thủ tục sau để xác định ánh xạ giữa r và z. 1. Quy định lược đồ mức xám cho ảnh ánh xạ. 2. Tính CDF )(rT và )(zG riêng rẽ sử dụng công thức (4.28) và (4.29) 3. Cho r = 0 đến 255 ( bước nhảy bằng 1) thực hiện: a. Tìm z sao cho )1()()(    zGrTzG b. Lưu giữ trong mảng F, tại vị trí r, giá trị bằng của z; nghĩa là F(r) = z. Thủ tục trên mang lại mảng ánh xạ ))(()( 1 rTGrFz   G(z ) r 1 r z 1 z T(r) G(z) G(z 1 ) r 1 r z 1 z T(r) T(r 1 ) 60 Kết quả này có thể được dùng để chuyển đổi ảnh gốc sang một ảnh có mức xám xấp xỉ với mức xám đã quy định. Với thủ tục trên để thực hiện chúng ta cần chia khoảng )(rT và )(zG vì thế chúng cung cấp cùng khoảng động của các mức xám. Chú ý rằng )(rT và )(zG 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: 255 )0()255( )0()( )( 0 TT Tin rT r i o      (4.31) 255 )0()255( )0()( )( 0 GG Gin zG z i m      (4.32) 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. Phân phối Gauss. Phân phối cho rằng 22 2/)( )(    z ezh (4.33) Trong đó  = kỳ vọng toán học hay trị trung bình.  = sai phương. Chú ý rằng h(z) giảm khoảng 90 phần trăm giá trị tối đa của nó tại 073.1/  z 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 phương pháp Gaussian là sử dụng các đoạn thẳng để biểu diễn phân phối mong muốn. Hình 4.15 đưa ra phương pháp như vậy. Các tham số m HL ,,  và h có thể được thay đổi đến tận khi thu được ảnh mong muốn. Hình 4.15 có thể được trình bày như sau:  L  H 0 m 255 z h k j 1 p(z) 61 Hình 4.15 Hàm tuyến tính từng đoạn. 1. Tính: )tan( 1 1 1 L j m y    )tan( Ljj yx   2. Với j xz 0 )tan( )( L z z zp   và với mzx j  jj j j z yxz xm yh zp     )()( 3. Tính: )tan(255 25 )tan( 1 1 Hkk H k yx m y       4. Với k xzm  kk k k z yxz mx hy zp     )()( và với 255 zx k )255( 255 )( z x y zp k k z    Phương pháp xen kẽ trên, chỉ sử dụng hai đoạn thẳng, được chỉ trên hình 4.16. Với mz   0 L L z z m h zp     )( Và với 255   zm 62 R R z z m h zp       )255( 255 )( Tham số m HH ,,  và h có thể được điều chỉnh xấp xỉ với phân phối mong muốn. Ví dụ, nếu chúng ta đặt 0.1 hm HH  thì ta sẽ thu được phân bố đồng đều. Hình 4.16 Xấp xỉ hai đoạn thẳng. Các dạng phân phối khác. Có một số dạng phân phối khác cũng được sử dụng để nâng cao chất lượng ảnh. Các dạng này được cho dưới đây. Với những dạng này chúng ta có thể có được một giải pháp gần nhất với công thức (4.26).  Hàm mũ: min )( min )( zzezp zz z     (4.34) Hàm chuyển đổi được cho bởi           r r dprr 0 min )(1ln 1  (4.35)  Hàm Rayleigh: min 2 )( 2 min 2 2 min )( zze zz zp zz z                (4.36) Hàm chuyển đổi được cho bởi 2 1 0 2 min )(1 1 ln2                                  r r dp rr  (4.37) p z (z)  L  H h 0 m 255 z 63  Hàm hyperbolic (căn bậc 3): 3/1 min 3/1 max 3/2 3 1 )( zz z zp z    (4.38)  Hàm hyperbolic (logarit)   )ln()ln( 1 )( minmax zzz zp z   (4.40) Hàm chuyển đổi được cho bởi         r r dp r r rr 0 )( min max min  (4.41) Thực tế khi thực hiện công thức trên chúng ta sẽ thay thế )(rp r bằng h(i). Bây giờ là lúc chúng ta phát triển các chương trình biến đổi lược đồ mức xám. Bài tập 4.3 1. Viết chương trình C để thay đổi lược đồ mức xám trên cơ sở hàm tuyến tính mức độ bộ phận hình 4.15. Kiểm tra chương trình trên ảnh "ISLAM.IMG". 2. Tương tự như câu 1, nhưng 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. Hình 4.17 là ảnh "ISLAM.IMG" sau khi sử dụng phân phối gaussian với 125   và 150073.1/   . Chú ý rằng ảnh này có hiển 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. 64 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 tiên 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 . n y bằng cách nào, h y quay lại một chút với ảnh mức xám liên tục, để )(rp r và )(zp z là hàm mật độ 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. lược đồ mức xám chúng ta 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. 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 i o inrT 1 )()( (4.28) và    z i m inzG 0 )()( (4.29) ở đ y n 0 (i)

Ngày đăng: 10/07/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan