Giáo trình xử lý ảnh y tế Tập 3 P11
lượt xem 5
download
Tín hiệu đi trong dây thần kinh vào và dây thần kinh ra như một dòng điện. Có rất nhiều kiểu dây thần kinh trong não và một số lớn các tế bào trạng thái và chức năng. Một số hạn chế các xung mà có khả năng làm quá tải mạch cảm biến. Một số đưa tin tức tổng hợp đến bề mặt não, một số khác nhận tín hiệu đưa vào.
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 3 P11
- gotoxy(1,3); printf(" "); gotoxy(1,3); printf(" Enter file name -->"); scanf ( "%s", file_name2); ind=access(file_name2, 0); } } fptro=fopen(file_name2, "wb"); xt=wherex(); yt=wherey(); gotoxy(70,25); textattr(RED+(LIGHTGRAY
- for(k=0;k
- if(L[j]==Len) { if(code[j]==aux2) { aux2=0; putc((int)gray[j],fptro); Len=0 ; break; } } } flength++; } } gotoxy(70, 25); textattr(WHITE+(BLACK
- a. Viết chương trình C sử dụng mã Huffman đặt trong phần header của file ảnh đ ã mã hoá để tạo một cây nhị phân. b. Mở rộng cho chương trình giải mã dùng cây nhị phân. Chương trình ph ải đạt được một vài yêu cầu quan trọng nhanh hơn phương pháp đã mô tả trong phần này. giải thích tại sao. 13.3 Mã chiều dài thay đổi Mã chiều dài thay đ ổi (RLC) là một phương pháp nén ảnh dựa trên sự cắt bớt các dư thừa không gian. Cho m ã hoá chiều dài thay đổi một chiều, một mã chiều dài thay đổi được định nghĩa là một số các phần tử điểm ảnh liên tục có chung một giá trị. Một ảnh có thể mã hoá dùng một cặp (mã chiều dài thay đổi, mã mức xám). Một chương trình như vậy sẽ không thể làm giảm kích thước của ảnh nếu ảnh không chứa các điểm có cùng các giá trị mức xám. Điều kiện này xuất hiện trong một ảnh nhiều chi tiết. Dù có th ế đi chăng nữa thì đ ịnh nghĩa của RLC có thể là một phương pháp tốt để mã hoá mà có thể kh ắc phục các vấn đề xuất hiện dựa theo các điều kiện sau: 1 . Một m ã chiều dài thay đổi được xác định bằng ba bít cuối cùng có ý nghĩa của nó được xác lập bằng 1. Còn 5 bít th ấp của nó cung cấp một bộ đếm từ 1 đến 31 cho byte đi theo nó. 2 . Nếu giá trị một điểm có m ã chiều dài thay đổi bằng không, th ì nó được mã hoá như sau: a. Nếu 3 bit cuối của nó đều xác lập lên 1, châửng hạn, 224, thì nó được m ã hoá thành (11100000, giá trị điểm), cụ thể, mã chiều d ài thay đổi bằng không theo sau bằng giá trị điểm. b. Cho các trường hợp còn lại, nó đ ược mã hoá như giá trị điểm. Các bước trên giả thiết rằng trong một ảnh b ình thường, mã chiều dài thay đổ i lớn hơn 31 ít xuất hiện, và các điểm có giá trị lớn hơn 224 cũng ít xuất hiện. Chương trình C sau sẽ thực hiện các bước trên. Chương trình 13.4 "RLC.C". Chương trình cho giải thuật RLC. /*Program 13.4 "RLC.C". Program for RLC.*/ /* Run length code. */ /* This program can be used for either coding images in RLC or decoding them. */ #include #include #include #include #define MASK 224 /* MASK=11100000 */ 333
- void main() { int buff[256],p; int N,i,k; FILE *fptr,*fptro; char file_name[14],ch; int NMASK=(~MASK); clrscr(); printf("This program can be used for both coding"); printf("\nand decoding images using 1-D RLC."); printf("\n\n Enter choice:"); printf("\n 1.Coding."); printf("\n 2.Decoding --- >" ); while(((ch=getch())!='1')&&(ch!='2')); putch(ch); printf("\n\nEnter input file name-->"); scanf("%s",file_name); fptr=fopen(file_name,"rb"); if(fptr==NULL) { printf("\n file %s does not exist.\n"); exit(1); } switch(ch) { case '1': printf("Enter output file name-->"); scanf("%s",file_name); fptro=fopen(file_name,"wb"); /* Read first line.*/ N=0; while((buff[N]=getc(fptr))!=EOF) { N++; if(N==256) break; } while(N!=0) { i=0; while(i
- k=0; if(i==(N-1)) /*Is reference value last value in line? */ { if((p&MASK)==MASK) { k=k|MASK; putc(k,fptro); putc(p,fptro); } else putc(p,fptro); break; } i++; while(p==buff[i]) { i++; k++; if((k==31)||(i==N)) break; } if(k==0) { if((p&MASK)==MASK) { k=MASK; putc(k,fptro); putc(p,fptro); } else putc(p,fptro); } else { k|=MASK; putc(k,fptro); putc(p,fptro); } } N=0; while((buff[N]=getc(fptr))!=EOF) { N++; if(N==256) break; 335
- } } fcloseall(); printf("\nDone coding"); break; case '2': /* Decoding procedure.*/ printf("\nEnter file name for storing decoded image- ->"); scanf("%s",file_name); fptro=fopen(file_name,"wb"); while(1) { k=getc(fptr); if(k==EOF) break; if((k&MASK)==MASK) { p=getc(fptr); if(p==EOF) { putc(k,fptro); break; } k=k&(NMASK); for(i=0;i
- dụng ch ương trình của bạn lên ảnh IKRAM.IMG. Khi đó kích thước của ảnh sau khi nén so với ảnh gốc sẽ thế nào ? 5 . Áp dụng mã Huffman với: a. File rút ra từ phần 4. b. Chiều dài thay đổi và giá trị điểm chia bằng cách xem xét chúng như hai file. Có thể chuyển mã 1-D RLC sang mã 2 -D RLC b ằng cách kiểm tra các dòng trước, hoặc kiểm tra bốn hướng khác nhau (trên, dưới, trái, phải). Các 2-D RLC này có thể nén ảnh ở mức độ cao hơn. 13.4 Mã chuyển đổi Nhắc lại là biến đổi Fourier cho một ảnh th ì có ph ần lớn các giá trị lớn nhất nằm ở miền tần số thấp. Mật độ các giá trị này giảm xuống nhanh chóng khi tần số tăng lên. Tính chất này, tính chất mà chúng ta áp dụng để lọc ảnh, cũng được áp dụng trong khi nén ảnh. Có một số phép biến đổi thuận tiện h ơn phép biến đổi Fourier. Phép biến đổi tối ưu nhất là phép biến đổi được đề xuất bởi Karhunen-Loeve (KL). Tuy nhiên, phép biến đổi này tự nó không thể đ ưa ra các bước tính toán nhanh hoặc hiệu quả h ơn. Một phép biến đổi xem có vẻ giống như biến đổi KL nhưng có thể tính toán như biến đổi Fourier rời rạc là phép biến đổi cosin rời rạc. Biến đổi cosin có một sự thay đổi nhỏ tối ưu hoá trong miền tập trung năng lượng so với biến đổi KL; nhưng do ưu điểm của kỹ thu ật tính toán n ên nó được áp dụng như một tiêu chu ẩn trong kỹ thuật nén ảnh. Phép biến đổi đ ược áp dụng trên toàn bộ ảnh nh ưng thông thường người ta hay áp dụng trên các khối nhỏ hơn có kích thước 8 8 hoặc 16 16. Lý do là: 1. Biến đổi của các khối nhỏ thì dễ tính hơn là biến đổi cho toàn bộ ảnh. 2. Quan hệ giữa các điểm ảnh ít thay đổi giữa các điểm ảnh gần nhau. Chúng tôi sẽ trình bày dưới đây phép biến đổi cosin và các k ỹ thuật tính toán hoàn thiện của nó. Một số phép biến đổi khác như Hadamard, Walsh, ..., không được nghiên cứu trong cuốn sách này, bởi vì chúng không tối ưu b ằng phép biến đổi Fourier và chúng có nhiều giới hạn trong lĩnh vực này. 13.4.1 Biến đổi cosin Biến đổi một chiều cosin rời rạc (DCT-Discrete Cosin Transform) cho bởi N 1 2 k ( 2n 1)k x(n) cos (13.4) X (k ) N 2N n 0 ở đ ây 337
- 1 với k=0 k 2 với các trường hợp còn lại. =1 và k = 0,1,2, ..., N. Một số phương pháp biến đổi nhanh cosin (FCT-Fast Cosine Transform) đã được phát triển. Một trong số đó là biến đổi của Chan và Ho. Thu ật toán này tương tự như thu ật toán FFT, ngoại trừ một số biến đổi ở đầu vào dữ liệu. Phép biến đổi n ày coi rằng N là bội số của 2. Dữ liệu đầu vào x(n) được sắp xếp lại theo thứ tự: ~ x x ( 2n) n = 0,1,2,...,N/2 - 1 (13.5) ~ x( N n 1) x(2n 1) Thay vào biểu thức (13.4) chúng ta được ( N / 2 1) (4n 1) k ( N / 21) (4n 3) k x (2n 1) cos X (k) x (2n) cos 2N 2N n 0 n 0 Sau khi nhân ta được: N 1 (4n 1)k X (k ) ~ (n) cos (13.6) x 2N n 0 Cũng giống như phương pháp hệ thập phân trong miền tần số cùng trong FFT, chúng ta cũng chia X(k) thành các giá trị chẵn và lẻ theo các bước sau: Các mục chỉ số chẵn: N 1 (4n 1)2k X (2 k ) ~ (n ) cos x 2N n 0 có thể biểu diễn thành: N 1 (4 n 1)k N X (2 k ) [ ~ (n ) ~ (n )] cos (13.7) x x N 2 n 0 2 2 Các mục chỉ số lẻ: N 1 (4n 1)(2k 1) X (2 k 1) ~ (n ) cos x 2N n 0 biểu thức này sau khi nhân một vài phép nhân, có thể biểu diễn thành: 338
CÓ THỂ BẠN MUỐN DOWNLOAD
-
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 | 135 | 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 P5
8 p | 154 | 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 4 P18
6 p | 341 | 11
-
Giáo trình xử lý ảnh y tế Tập 1a P15
10 p | 695 | 11
-
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 | 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 4 P8
6 p | 144 | 9
-
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 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 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
-
Giáo trình xử lý ảnh y tế Tập 3 P13
9 p | 109 | 4
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