Xem mẫu

  1.  T  T  jTk  jt   x a (kT )e x a (t )  e d  2  k     T Thay đ ổi thứ tự tính tổng và tích phân,  /T T   e j(t kT ) d x a (t )   xa ( kT )    2    k    / T Tính giá trị của tích phân chúng ta được  (t  kT ) sin  T x (7.12) x a (t )  (kT ) a  k   (t  kT ) T Biểu thức (7.12) là phép nội suy cho phép khôi phục các tín hiệu liên tục theo thời gian xa(t) từ các mẫu của nó. Trường hợp 2-D: Các định lý lấy mẫu 2-D giả thiết rằng hàm giới hạn băng fa(x,y) có th ể khôi phục một cách hoàn toàn từ các mẫu mà tho ả m ãn 1 1 (7.13) TH  TV  2WH 2WV ở đ ây WH và WV biểu diễn giải thông theo hezt của tín hiệu 2-D theo chiều dọc và theo chiều ngang. Nếu biểu thức (7.13) được thoả mãn, và fa(k1TV,k2TH) biểu diễn tín hiệu lấy mẫu 2 -D, thì fa(x,y) có th ể khôi phục từ fa(k1TV,k2TH) dùng biểu thức nội suy: ( ) ( )  ( y  k 2TH ) sin TH  (7.14) ( y  k 2TH ) TH Ch ứng minh của các biểu thức (7.13) và (7.14) tương tự như trường hợp 1- D và được để lại như một bài tập. Một chú ý là phổ tần số của một tín hiệu lấy mẫu 2-D tuần hoàn trong miền tần số, như trong h ình 7.4. Tín hiệu tương tự có thể được khôi phục bằng cách tách ra một chu kỳ từ phổ tín hiệu mẫu. 134
  2. 7.4 Định lý lấy mẫu áp dụng lên các ả nh Một ảnh được tạo n ên b ằng cách chiếu một cảnh 3 -D lên mặt phẳng 2-D. Phép chiếu này biểu diễn một phép biến đổi từ nhiều vào một. Có nghĩa là một điểm ảnh không tương ứng duy nhất với một điểm trong cảnh 3-D. Điều này được minh hoạ qua hình 7.5. Giả sử rằng ảnh này ch ứa N điểm ảnh theo hướng x. Sau đó cho các vật thể S1 và S2 trong hình 7.5 chúng ta có 10 mét (7.15)  x1  N 3 và mét (7.16) x 2  N Định lý lấy mẫu đòi hỏi: 1 (7.17) x1  2W1 1  TH WH WV   2 TV TV  TH Hình 7.4 Phổ tần số của một tín hiệu lấy mẫu 2 -D. 135
  3. 1 và (7.18) x 2  2W2 ở đ ây, W1 là tần số cao nhất theo hướng x cho ảnh được tạo bởi một mình vật thể S1, và W2 là tần số cao nhất theo hướng x cho ảnh được tạo bởi một mình vật thể S 2. Bởi vì chúng ta chỉ có mộ t ảnh bao gồm S1 và S 2 nên W1 = W2 và N được xác định theo 3 1 (7.19) x 2   N 2W2 Vì th ế N = 6 W2 (7.20) Hình 7.5 Ánh xạ một cảnh 3-D lên m ặt phẳng ảnh 2 -D. Thay N trong biểu thức (7.15) chúng ta đ ược 10 10 1 x1    6W2 6W1 2W1 Vì thế, giả th iết lấy mẫu không thoả mãn cho vật thể S 1, và ở đây các thông tin của miền này trên ảnh không thể khôi phục qua phép nội suy. Nói một cách khác, các vật thể gần camera có khả năng tốt h ơn khi lấy mẫu, trong khi các vật thể xa camera th ì dễ dàng khi khôi phục mẫu. 136
  4. 7.5 Nhân đôi độ phân giải trên ảnh Kết quả của định lý lấy mẫu có thể dùng đ ể tăng độ phân giải trên ảnh. Dù sao chăng nữa, dựa vào kết quả đã đạt được chúng ta có thể kết luận rằng nói chung thì không thể tăng độ phân giải của ảnh lên được. Trong các ảnh, các vật thể đáng quan tâm thông thường được che hết bề mặt của ảnh. Vì th ế, nếu các đối tượng trong nền không được cho độ phân giải d ư thừa, các vật thể cận cảnh thông thường có đủ mẫu để cho phép dùng các đ ịnh lý lấy mẫu. 7.5.1 Nhân đôi độ phân giải dùng sự thể hiện tần số của lý thuyết lấy mẫu Chúng ta đã chú ý ở trong chương 6 rằng phổ tần số của một ảnh giảm nhanh cùng với sự tăng của tần số. Chúng ta có thể dùng nhận xét n ày và định lý lấy mẫu Whittaker-Shannon để tăng độ phân giải. Giải thuật này theo các bước sau: 1. Rút ra FFT của ảnh có kích thước N  N, cụ thể I ( k1 , k 2 )  FFT {i ( n1 , n2 )( 1) n1  n2 } phổ tần số sẽ phải có gốc toạ độ ở trung tâm của mảng FFT. 2. Thêm các điểm 0 vào FFT như giới thiệu trong hình 7.6 đ ể tăng kích thước của nó lên 2 N  2N. 3. Rút ra b iến đổi ngược FFT của biến đổi tần số mở rộng. Kết quả thu được là ảnh gốc với độ phân giải tăng gấp đôi. Cần chú ý là các vật thể không lấy đủ mẫu trong ảnh gốc thì không cung cấp một sự phát triển trong độ phân giải. Để thực hiện các phương pháp trên chúng ta sẽ bắt đầu với ảnh kích thước 128  128 điểm và 256 mức xám trong hình 7.7a. ảnh đã có sẵn trên đ ĩa với file có tên là CAMEL.IMG. Th ực hiện thuật toán trên được cho trong Ch ương trình 7.2. Kết quả áp dụng trên ảnh được cho trong hình 7.7b. Rõ ràng là rất khó khăn để nhận ra người cưỡi trên lạc đà, nếu ảnh gốc mặt người đó chưa được lấy đủ mẫu. Chương trình 7.2 ENLQFFT.C nhân đôi độ phân giải của một ảnh qua FFT. /*This program utilizes 2-D FFT to double the size of an image.*/ #define pi 3.141592654 #include #include #include 137
  5. #include #include #include #include #include void bit_reversal(unsigned int *, int , int); void WTS(float *, float *, int, int); void FFT(float *xr , float *xi, float *, float *, int , int) ; void transpose(FILE *, int, int); void FFT2D(FILE *, FILE *, float *, float *, unsigned int *, int,int,int); void main() { int N,m,i,j,N2,N4,m2,n2,ind; unsigned int *L; float *wr,*wi; FILE *fptri,*fptro,*fptrt; double nsq; float *buffo,*buffi; unsigned char file_name[14],ch,*buffr; float max,min,scale; clrscr(); printf("Enter file name for image to be enlarged -> "); scanf("%s", file_name); fptri=fopen(file_name,"rb"); if(fptri==NULL) { printf("\n File does not exist."); exit(1); } nsq=filelength(fileno(fptri)); N=(int)sqrt(nsq); m=(int)(log10((double)N)/log10((double)2)); fptro=fopen("FFT1.img","wb+"); /* file for storing FFT of image.*/ again : gotoxy(1,2); 138
  6. printf ( " "); gotoxy(1,2); printf("Enter file-name for enlarged image -> "); scanf("%s",file_name); if(((stricmp("FFT1.img",file_name))==0)|| ((stricmp("temp.img",file_name))==0)|| ((stricmp("IFFT2.img",file_name))==0)) { printf("This is a reserved file name. Use some other name."); 2 N N 2 0 ’s 0’s N 2 2    T T 1 2 T N FFT của ảnh 0 ’s 0’s Hình 7.6 Thêm các số 0 vào FFT thu được ảnh có tần số mở rộng. goto again; } gotoxy(1,2); printf ( " "); ind=access(file_name,0); while(!ind) { gotoxy(1,3); 139
  7. 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); } } 140
  8. H ình 7.7 "CAMEL.IMG" và ảnh đ ã đ ược phóng to. N2=N
  9. /* Taking 2-D FFT. */ FFT2D(fptri,fptro,wr,wi,L,N,m,-1); clrscr() ; printf(" Adding zeros to FFT of image. \n"); /* Adding zeros to double the size of the FFT.*/ N4=N2
  10. printf("Last stage in forming enlarged image."); fptri=fopen("IFFT2.img","rb"); fptro=fopen(file_name,"wb"); buffr=(unsigned char *)malloc(N2*sizeof(char)); max=0; min=1.0e7; for(i=0;i
nguon tai.lieu . vn