Giáo trình xử lý ảnh y tế Tập 1b P5
lượt xem 13
download
Lĩnh vực về “thị giác máy" sẽ được trình bày trong một cuốn sách khác. Xử lý ảnh số có rất nhiều ứng dụng như làm nổi các ảnh trong y học, khôi phục lại ảnh do tác động của khí quyển trong thiên văn học, tăng cường độ phân giải của ảnh truyền hình mà không cần thay đổi cấu trúc bên trong của hệ thống chuyển tải, nén ảnh trong khi truyền đi xa hoặc lưu trữ. Vấn đề này được trình bày một cách chặt chẽ trên quan điểm xử lý tín hiệu hai chiều....
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 P5
- suy ra 1 1 U ( z1 , z 2 ) z1 1 1 z 21 1 Phổ tần số của tín hiệu bước nhảy có thể tính từ 1 1 U (e iw1T1 , e iw2T2 ) iw1T1 1 e iw2T2 1 e 3.3 Các bộ lọc hai chiều có đáp ứng xung hữu hạn 2-D Quan hệ giữa đầu vào và đầu ra cho bộ lọc FIR 2-D (FIR - Finite Impulse Response) được cho bởi N1 N2 h(k1 , k 2 ) x(n1 k1 , n2 k 2 ) (3.11) y (n1 , n2 ) k1 N1 k 2 N 2 Trong biểu thức (3.11), h(n1,n2) là đáp ứng xung của bộ lọc và được định nghĩa trên một cửa sổ có kích thước (2N1 + 1) (2N2 + 1) có gốc toạ độ ở trung tâm; x(n1,n2) là tín hiệu vào của bộ lọc. Nếu x(n1,n2) = 0 với (n1 0) (n2 0) , thì bằng cách lấy biến đổi z cả hai phía của biểu thức (3.11) chúng ta được N1 N2 k1 k 2 h(k , k ) X ( z , z )z Y ( z1 , z 2 ) z 1 2 1 2 1 2 k1 N 1 k 2 N 2 (3.12) Hàm truyền đạt của bộ lọc 2-D FIR được cho bởi N1 N2 Y ( z1 , z 2 ) h(k1 , k 2 )z1 k1 z 2 k2 H ( z1 , z 2 ) X ( z1 , z 2 ) k1 N 1 k 2 N 2 (3.13) Các bộ lọc trên được định nghĩa là có kích thước (2N1 + 1) (2N2 + 1). Trong hầu hết các ứng dụng chúng ta đặt N1 = N2 = N. Đáp ứng tần số của bộ lọc 2-D có thể tính từ N1 N2 H (e j1T1 , e j 2T2 ) )e j1k1T1 e j 2 k2T2 h( k , k 1 2 k1 N 1 k 2 N 2 (3.14) Đáp ứng xung có thể tính từ đáp ứng tần số sau khi dùng biểu thức (2.17) trong chương 2. Các bộ lọc có đáp ứng tần với phần số thực thuần tuý được gọi là các bộ lọc pha zero. Trong các bộ lọc này, các pha zero được dịch đi một góc , cụ thể là có các giá trị âm trong phổ tần số. Một bộ lọc pha zero có đáp ứng xung l à số thực thoả mãn h(n1 , n2 ) h( n1 , n 2 )
- Có nghĩa là mỗi một mẫu đều có một giá trị bằng nó tương ứng. Vì thế, biểu thức (3.11) có thể viết lại thành: N N h(k , k )[ x(n y (n1 , n2 ) k1 , n2 k 2 ) x(n1 k1 , n2 k 2 )] 1 2 1 k1 N k 2 1 N + h(k1 ,0)[ x (n1 k1 , n2 ) x(n1 k1 , n2 ) (3.15) k1 1 + h(0,0) x(n1 , n2 ) Do vậy làm giảm đi số phép nhân cần thiết để thực hiện bộ lọc. Cho bộ lọc đối xứng vòng tròn chúng ta có h(k1 , k 2 ) h( k1 , k 2 ) h(k1 , k 2 ) h( k1 , k 2 ) Và N1 = N2 = N. Biểu thức (3.14) có thể viết lại N N y (n1 , n2 ) h(k1 , k 2 )[ x(n1 k1 , n2 k 2 ) k1 1 k 2 1 + x(n1 k1 , n2 k 2 ) x (n1 k1 , n2 k 2 ) + x(n1 k1 , n2 k 2 )] (3.16) N + h(0, k)[ x(n1 , n2 k ) x (n1 k , n2 ) k =1 + x(n1 , n2 k ) x(n1 k , n2 )] + h( 0,0 )x(n1 , n2 ) Các bộ lọc đối xứng vòng tròn biểu diễn tích đối xứng bát giác (xem kết quả của ví dụ 2.5 và 2.6 cho trong chương 2). Vì vậy h(k1,k2) = h(k2,k1) Và ở đây biểu thức (3.16) có thể viết lại thành N N y (n1 , n2 ) h(k1 , k 2 )[ x(n1 k1 , n2 k 2 ) k1 1 k 2 1 + x (n1 k 2 , n2 k1 ) x(n1 k1 , n2 k 2 ) + x (n1 k 2 , n2 k1 ) x(n1 k1 , n2 k 2 ) + x (n1 k 2 , n2 k1 ) x (n1 k1 , n2 k 2 ) + x (n1 k 2 , n2 k1 )]
- N h(k , k )[ x(n1 k , n2 k ) x(n1 k , n2 k ) k 1 + x(n1 k , n2 k ) + x(n1 k , n2 k )] N + h(0, k)[ x(n1 , n2 k ) x(n1 k , n2 ) k =1 + x(n1 , n2 k ) x(n1 k , n2 )] h(0,0) x(n1 , n2 ) 3.4 Phần mềm thực hiện của các bộ lọc 2-D có đáp ứng xung hữu hạn Trong phần này chúng tôi sẽ trình bày phương pháp thực hiện bằng phần mềm bộ lọc 2-D FIR cho xử lý ảnh số. Chúng ta sẽ coi rằng ảnh được lưu trên bộ nhớ ngoài như đĩa cứng hay vùng đệmảnh. Số dòng tối thiểu cần cho việc xử lý, được lưu trong bộ nhớ, cho phép lọc các ảnh lớn mà không cần dự trữ một lượng lớn bộ nhớ của máy tính. Phương pháp này được mô tả bằng sơ đồ trong hình 3.1 ((độ_rộng_của_ảnh-1),0) (0,0) n2 Bộ đệm chuyển đổi ảnh w. dịch Hàng thứ n1 (trong bộ nhớ trong) Độ rộng kích thước = (2N + 1) độ rộng của ảnh. của ảnh Bộ Chiều dài của (0,2N) đệm ảnh ảnh N N z n2 h(k1 , k 2 ) w( N k1 , n2 k 2 ) k1 N k 2 N n1 z n2 Lưu trữ tại bộ nhớ ngoài hay bộ đệm ảnh. Buffer. Kích thước = 1 độ rộng ảnh. Hình 3.1 Lọc 2-D. Thuật toán gồm các bước sau: 1. Xoá bộ đệm ảnh, w. 2. Cho n1 = (0, 1, 2, ..., (chiều dài ảnh -1), hãy làm các công việc sau: a. Chuyển hàng thứ n1 từ bộ đệm ảnh hoặc từ file ảnh lên hàng cuối cùng trong w. (Chúng ta coi rằng ảnh được biểu diễn bằng 8 bit hay 256 mức xám). b. Cho n2 = 0, 1, 2, ..., (chiều rộng ảnh-1) làm các công vi ệc sau: (1) Tính z(n2) từ
- N N h( k , k z ( n2 ) )w( N k1 , n 2 k 2 ) 1 2 k1 N k 2 N (2) Lưu z(n2) trong bộ đệm tại vùng n2. c. Copy bộ đệm ra file trung gian trên đĩa cứng. d. Dịch chuyển hàng của w theo hướng như trong hình 3.1, cụ thể, cho i = 0, 1, ..., (2N - 1) làm các công việc sau: rowi rowi 1 3. Đọc ảnh đã lọc từ file trung gian, chia độ và dịch chuyển để các giá trị nằm trong khoảng từ 0 đến 255 (8 bit). 4. Lưu ảnh đã được chia độ lên file hoặc bộ đệm ảnh. 5. Xoá file trung gian. 6. Hiện thị ảnh đã được lọc. Chú ý rằng biểu thức được dùng trong thuật toán này, N N h(k , k ) w( N k , n z ( n2 ) k2 ) 1 2 1 2 k1 N k 2 N (3.18) Để lọc ảnh có hơi khác với biểu thức truy hồi (3.11). Điểm khác thứ nhất: N là một hằng số thay thế cho n1, với n1 là một biến trong biểu thức (3.11). Biến trong thuật toán này được tính ra bằng cách dịch chuyển hàng trong w. Giải thuật trên dẫn đến cùng một kết quả với biểu thức N N h(k1, k 2 ) x(n1 N k1 , n2 k 2 ) (3.19) y (n1 , n 2 ) k1 N k 2 N Tương tự như biểu thức (3.11) ngoại trừ một dịch chuyển của N hàng trên ảnh ra, N N h(k1 , k 2 ) X ( z1 , z 2 ) z1 N k z 2 k Y ( z1 , z 2 ) 1 2 k1 N k 2 N hay N N Y ( z1 , z 2 ) z1 N h(k1 , k 2 ) z1 k1 z 2 k2 X ( z1 , z 2 ) k1 N k 2 N (3.20) Chính là biến đổi z trong biểu thức (3.11) được nhân với một trễ dọc z1 N . Để tính bộ lọc đối xứng vòng tròn, biểu thức (3.18) có thể viết lại d ưới dạng biểu thức (3.17) bằng cách thay n1 bằng N.
- N N z ( n2 ) h(k1 , k 2 ) [ w( N k1 , n2 k 2 ) w( N k2 , n2 k1 ) k1 1 k 2 1 k1 k 2 + w( N k1 , n2 k 2 ) w( N k 2 , n2 k1 ) + w( N k1 , n2 k 2 ) w( N k 2 , n2 k1 ) + w( N k1 , n2 k2 ) w( N k 2 , n2 k1 )] (3.21) N + h(k, k)[ w( N k , n2 k ) w( N k , n2 k ) k =1 + w( N k , n2 k ) w( N k , n2 k )] N + h(0, k)[ w( N , n2 k ) w( N k , n2 ) k =1 + w( N , n2 k ) w( N k , n2 )] + h(0,0)w( N , n2 ) Chương trình 3.1 “FIR.C”. Lọc ảnh dùng kiểu lọc FIR. /*PROGRAM 3.1 "FIR.C". Program for filtering Images using FIR type filters.*/ /* This program is for filtering images using the algorithm described in sec.3.4. The filter type is FIR. No assumptions are made regarding the filter coefficients (e.g. circular symmetry). Thus, the program is general enough to be used with any type of FIR filter. The FIR filter coefficients can be obtained using the the Simpson's double integration program described in chapter II. */ #include #include #include #include #include #include #include #include void main() {
- int i,j,n1,n2,N,NT,N2,image_width, image_length,k1,k2; int true_width,true_length,ind; char file_name[14],ch; unsigned char **w; unsigned char *temp; float **h,max,min; float nsq, zn2, tmp; FILE *fptr, *fptr1, *fptr_tmp; clrscr(); printf ("Enter file name containing FIR filter coefficients ->"); scanf("%s",file_name); if((fptr=fopen(file_name,"r"))==NULL) { printf("%s does not exist.",file_name); exit(1); } /* calculating order of filter. */ nsq=0; while(fscanf(fptr,"%f ", &tmp)!=EOF) nsq++; rewind(fptr); NT=sqrt(nsq); printf("Order of filter %d x %d",NT,NT); N=(NT-1)>>1; N2=N
- ("Press any key to continue, Screen will be cleared. "); getch(); clrscr(); printf("Enter file name for input image ->"); scanf("%s",file_name); if((fptr=fopen(file_name,"rb"))==NULL) { printf("%s does not exist.", file_name); printf("\nPress any key to exit."); getch(); exit(1); } nsq=filelength(fileno(fptr)); printf("is this a square image ?"); printf("\n i.e. Is image_length=image_width (y or n)? -> "); while(((ch=tolower(getch()))!='y')&&(ch!='n')); putch(ch); switch(ch) { case 'y': image_length=image_width=sqrt(nsq); printf("\n Image size = %d x %d", image_length, image_width); break; case 'n': printf("\nEnter image_width-->"); scanf("%d",&image_width); image_length=nsq/image_width; printf("Image length is %d", image_length); break; } /* opening a temporary file. */ fptr_tmp=fopen("temp_img.dat","w+"); gotoxy(70,25); textattr(WHITE+(GREEN
- /* Clear Image Transfer Buffer. */ for(i=0;i
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 | 136 | 16
-
Giáo trình xử lý ảnh y tế Tập 1b P15
8 p | 142 | 13
-
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 P4
8 p | 122 | 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 P2
8 p | 124 | 10
-
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 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 | 107 | 7
-
Giáo trình Xử lý ảnh y sinh (Ngành Kỹ thuật y sinh): Phần 2
115 p | 22 | 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