Xem mẫu

  1. 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
  2. for(i=0;j
  3. 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 57
  4. 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, để p r (r ) và p z ( 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 s  T (r )   p r ( )d 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 (4.24) v  G ( z )   p z ( )d 0 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à: G( z )  T (r ) (4.25) z r hay (4.26)  p z ( )d   pr ( )d 0 0 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à: z  G 1 (T ( r ))  F ( r ) (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 r1 thu được T(r1). Chiếu T(r1) 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 )   no (i ) i 1 (4.28) z G ( z )   n m (i ) và (4.29) i 0 ở đâ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 58
  5. hợp rời rạc, dẫn đến khó có thể đạt được các giá trị của r và z để T (r ) đúng bằng G ( z ) . 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: (4.30) G ( z  1)  T (r )  G ( z  1) (xem hình 4.14.) T(r) G(z) T(r1) G(z1) r1 r z1 z H ình 4.13 Biểu diễn đồ thị của công thức (4.26). G(z T(r) ) r1 r z1 z 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 T (r ) và G ( z ) 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 G ( z )  T (r )  G ( z  1) 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ạ z  F ( r )  G 1 (T ( r )) 59
  6. 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 T (r ) và G ( z ) vì thế chúng cung cấp cùng khoảng động của các mức xám. Chú ý rằng T (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  no (i)  T (0) i 0 (4.31) T (r )  255 T (255)  T (0) z  nm (i)  G (0) i 0 (4.32) G( z)  255 G ( 255)  G ( 0) 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 2 / 2 2 h( z )  e ( z   ) (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 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 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ố  L , H , m 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: p(z) 1 h k H j 60 L 0 m 255 z
  7. H ình 4.15 Hàm tuyến tính từng đoạn. 1. Tính: 1 yj  1 tan( L ) 1 m x j  y j tan( L ) 2. Với 0  z  x j z p z ( z)  tan( L ) và với x j  z  m h yj p z ( z)  (z  x j )  y j m xj 3. Tính: 1 yk  tan( H ) 1 25  m x k  255  y k tan( H ) 4. Với m  z  xk yk  h p z ( z)  ( z  xk )  y k xk  m và với x k  z  255 yk p z ( z)  (255  z ) 255  x k 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 0  z  m h  L z  L p z ( z)  m Và với m  z  255 61
  8. R h ( z  255)   R p z ( z)  255  m Tham số  H ,  H , m 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  H   H  m  h  1.0 thì ta sẽ thu được phân bố đồng đều. pz(z) L H h 0 m 255 z 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ũ: p z ( z )  e  ( z  zmin ) (4.34) z  z min Hàm chuyển đổi được cho bởi r 1  (4.35)  ln 1   p r ( )d  r  rmin 0  Hàm Rayleigh:  ( z  zmin ) 2   z min  2 2  z     (4.36) p z ( z)  z  z min e 2  Hàm chuyển đổi được cho bởi 1   2        1  2  2 ln  r (4.37)  r  rmin     1   p r ( )d      0   62
  9. Hàm hyperbolic (căn bậc 3): z 2 / 3 1 (4.38) pz (z)  3 z1/ 3  z1/ 3 max min Hàm hyperbolic (logarit) 1 (4.40) p z ( z)  zln( z max )  ln( z min ) Hàm chuyển đổi được cho bởi r p ( ) d  rmax   r 0 (4.41) r  rmin    rmin  Thực tế khi thực hiện công thức trên chúng ta sẽ thay thế pr (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à  / 1.073  150 . 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. 63
  10. 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 m iề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 64
nguon tai.lieu . vn