Danh mục

Giáo trình xử lý ảnh y tế Tập 1b P15

Số trang: 8      Loại file: pdf      Dung lượng: 187.19 KB      Lượt xem: 12      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nếu ngân sách bạn cho phép, tôi đề nghị bạn nên có một hệ thống như trong hình 1.3. Nó bao gồm một máy tính PC có kèm theo thiết bị xử lý ảnh. Nối với cổng vào của thiết bị thu nhận ảnh là một video camera, và cổng ra nối với một màn hình. Thực tế, phần lớn các nghiên cứu của chúng ta được đưa ra trên ảnh mức xám (ảnh đen trắng). Bởi vậy, hệ thống của bạn sẽ bao gồm một thiết bị xử lý ảnh đen trắng và một màn hình đen trắng....
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 1b P15 #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 main() { int i,k,m,N,n2,sign; unsigned int *L; float *wr,*wi,*xr,*xi; char file_name[14]; FILE *fptr; printf(\nEnter name of file containing data points-> ); scanf(%s,file_name); if((fptr=fopen(file_name,rb))==NULL) { printf(file %s does not exist.); exit(1); } printf(Enter # of data points to be read -->); scanf(%d,&N); m=(int)(log10((double)N)/log10((double)2.0)); k=1; for(i=0;i/* Generate Look-up table for bit reversal. */ bit_reversal(L,m,N); /* Allocating memory for FFT arrays ( real and imag.) */ xr=(float *)malloc(N*sizeof(float)); xi=(float *)malloc(N*sizeof(float)); /* Setting-up the data in real and imag. arrays.*/ for(i=0;i>1)-1; wr=(float *)malloc(n2*sizeof(float)); wi=(float *)malloc(n2*sizeof(float)); /*Generating LUT for twiddle factors. */ WTS(wr,wi,N,-1); /* Taking FFT. */ FFT(xr, xi, wr, wi, m, N); printf(Enter file name for storing FFT output.--->); scanf(%s,file_name); fptr=fopen(file_name,w); for(i=0;iunsigned int MASK,C,A,j,k,i; for(k=0;ki; A{ /* FFT algorithm, Decimation-in-time algorithm. Note: 1. N=2 to the power of m. 2. The input arrays are assumed to be rearranged in bit-reverse order. You will need to use routine bitreversal for that purpose. 3. The twiddle factors are assumed to be stored in LUT's wr[I and wi[j. You will need to use routine LUT for calculating and storing twiddle factors.*/ int ip,k,kk,l,incr,iter,j,i; float Tr,Ti; ip=1; kk=(N>>1); incr=2 ; for(iter=0; iter l=k*kk-1 ; for(j=k; j>=1; ip N / 2 1 N 1 f (k )WN kn   kn   f (k )W F ( n)  N k 0 k N / 2 N / 2 1 N    nN / 2 f (k  )W N kn    f (k )  W 2  k 0 Bây giờ, chia dãy F(n) thành hai dãy dựa trên giá trị chẵn và lẻ của n. N / 21 N  [ f (k )  W ( 2n).N / 2 f (k   )]W N kn F ( 2n)  /2 2 k 0 N / 2 1 N )]WN k 22 n1) (  [ f (k )  W (2n 1).N / 2 f (k  F (2n  1)  / 2 k 0 W N nN  e  j 2n  1.0  Chú ý rằng W N (2n1).N / 2  e  j (2 1)n  1.0  Vì vậy N / 21 N  )]WN kn  [ f (k )  f (k  F ( 2n)  /2 2 k 0 N / 21 N   ) WN k ]WN kn   [ f (k )  f (k  F (2n  1)  /2 2 k 0 N Đặt f 10 ( k )  f ( k )  f ( k  ) 2 N  )]WN k f 11 ( k )  [ f ( k )  f ( k  2 Vì vậy N / 21   f10 (k ).W N kn F ( 2n)  /2 (6.39) k 0 97 N / 2 1   f11 (k ).W N kn F (2n  1)  /2 (6.40) k 0 Các biểu thức (6.39) và (6.40) có thể biểu diễn bằng dưới dạng biểu đồ bướm như trong hình 6.6. Chúng ta có thể tiếp tục chia nhỏ các tổng cho trong các biểu thức (6.39) và (6.40), tiếp tục l ...

Tài liệu được xem nhiều: