Giáo trình xử lý ảnh y tế Tập 1b P15
lượt xem 13
download
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....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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;i
- unsigned 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 / 21 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 n1) ( [ f (k ) W (2n 1).N / 2 f (k F (2n 1) / 2 k 0 W N nN e j 2n 1.0 Chú ý rằng W N (2n1).N / 2 e j (2 1)n 1.0 Vì vậy N / 21 N )]WN kn [ f (k ) f (k F ( 2n) /2 2 k 0 N / 21 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 / 21 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àm như vậy cho tới khi mỗi tổng giảm xuống chỉ còn lại một phần tử. Giải thuật này giống như giải thuật thuật toán phân chia thời gian và để lại cho bạn như một bài tập cho bạn. Một lưu đồ cho FFT phân chia tần số với N = 4 trình bày trong hình 6.7. Bạn cần chú ý đến bậc của dữ liệu đầu ra là bit được đảo. Phần mềm thực hiện thuật toán trên thì rất giống phần mềm thực hiện FFT phân chia miền thời gian, và một chương trình C được cung cấp ở Chương trình 6.2. Có lẽ bạn sẽ tự hỏi: nếu phân chia miền thời gian đã thực hiện được công việc thì tại sao lại phải xem xét thêm FFT phân chia tần số. Để trả lời câu hỏi này, chúng ta sẽ cần xem xét phần kế tiếp, FFT giảm lược. Chương trình 6.2 “FFTDF” FFT phân chia tần số. /**************************** * Program developed by: * * M.A.Sid-Ahmed. * * ver. 1.0 1992.1994 * *****************************/ /* FFT - Decimation-in-frequency routine.*/ #define pi 3.141592654 void bit_reversal (unsigned int *, int, int); void WTS(float *, float *, int, int) ; void FFT(float *xr, float *xi , float, float, int, int); void FFT (float *xr, float *xi, float *wr, float *wi, int m, int N) { /* FFT algorithm. Decimation-in-frequency algorithm. Note : 1. N=2 to the power of m. 98
- 2. The output arrays are left in bit-reverse order. You will need to use routine "bit-reversal" to place them in normal ascending order. 3. The twiddle factors are assumed to be stored in LUT's wr[j and wiEj. 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,diffr,diffi; W n W 2 n W 4 n W 8 n 0 0 0 0 0 0 1 2 4 8 8 0 0 2 4 8 4 4 4 0 3 6 12 12 12 2 0 4 8 2 2 2 4 5 10 6 10 10 0 6 0 6 12 12 6 6 4 7 14 14 14 14 0 8 1 1 1 1 0 9 3 5 9 9 1 0 0 10 5 9 5 5 2 4 0 11 7 13 13 13 3 0 2 12 9 3 3 3 4 4 13 11 7 11 11 5 0 0 6 14 13 11 7 7 6 4 15 15 15 15 15 7 Hình 6.7 N = 4, phân chia miền tần số FFT. ip= (N>>1) ; kk=1; incr=N; for(iter=0; iter
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Xử lý ảnh số - Những nguyên lý cơ bản part 5
2 p | 161 | 26
-
Giáo trình xử lý ảnh y tế Tập 1a P1
11 p | 774 | 25
-
Giáo trình xử lý ảnh y tế Tập 1a P17
10 p | 670 | 17
-
Giáo trình xử lý ảnh y tế Tập 1b P1
8 p | 134 | 16
-
Giáo trình xử lý ảnh y tế Tập 1b P3
8 p | 127 | 13
-
Giáo trình xử lý ảnh y tế Tập 1b P5
8 p | 154 | 13
-
Giáo trình xử lý ảnh y tế Tập 1b P16
8 p | 110 | 10
-
Giáo trình Xử lý ảnh y sinh (Ngành Kỹ thuật y sinh): Phần 1
138 p | 46 | 10
-
Giáo trình xử lý ảnh y tế Tập 1b P4
8 p | 122 | 10
-
Giáo trình xử lý ảnh y tế Tập 1b P2
8 p | 123 | 10
-
Giáo trình xử lý ảnh y tế Tập 1a P4
11 p | 586 | 8
-
Giáo trình xử lý ảnh y tế Tập 4 P2
7 p | 98 | 7
-
Giáo trình xử lý ảnh y tế Tập 3 P7
9 p | 98 | 7
-
Giáo trình xử lý ảnh y tế Tập 1b P14
8 p | 106 | 7
-
Giáo trình Xử lý ảnh y sinh (Ngành Kỹ thuật y sinh): Phần 2
115 p | 21 | 7
-
Giáo trình xử lý ảnh y tế Tập 4 P5
6 p | 136 | 6
-
Giáo trình xử lý ảnh y tế Tập 2 P15
8 p | 115 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn