Giáo trình xử lý ảnh y tế Tập 3 P16
Số trang: 9
Loại file: pdf
Dung lượng: 155.03 KB
Lượt xem: 10
Lượt tải: 0
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 bạn muốn dờidấu thập đi chỗ khác trong trường hợp các điểm nhập vào lớn hơn một, thì nhắpnút trái chuột nhiều lần. Hành động này sẽ làm dời đi rất nhiều điểm tuỳ theo bạnchọn (bắt đầu từ điểm cuối cùng) từ biểu đồ màu và lưu trong mảng. Khi bạn ấnESC, con trỏ sẽ xuất hiện trên màn hình VGA.
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 3 P16 printf( %d derivative=%f error=%f ,k,der,delta); if(fabs(delta)>=500.0) { printf( A numerical problem wasencountered.); printf( Restart problem with a differentchoice.); exit(1); } r[0]-delta/der; } gotoxy(70,25); textattr(WHITE+(BLACK } double p(double x) { double prob; switch(ch) { case 1: prob=exp(-x*x*0.5); break; case 2: prob=1.0; break; case 3: prob=exp(-1.4142136*fabs(x)); break; } return prob; }#define EPS 1.0e-6/*----------------------------------Calculating the next decision level,given values for d[i-11 and r[i-1].--------------------------------- */double decision_level(double di_1, double ri_1) { double delta,di,fun,dfun,ff,area1,area2; int i; if(fabs(di_1)>10.0) delta=2.0; else delta=0.1; di=ri_1+delta; i=0; /* Using Newton-Raphsons method for root finding.*/while(fabs(delta)>=EPS) { i++; if(i>=1000) { printf( no convergence. ); return di; } area1=Romberg(di-1,di,f1); area2=Romberg(di-1,di,f2); 376 ff=area1/area2; fun=(ri_1)-ff; if(fabs(area2) double T[10][10],h,x,Area; int N,k,kk,i,j; N=9; k=1 ; h=di- di_1; T[0][0]=h*((*f)(di_1)+(*f)(di))/2.0; for(i=1;ipháp này có nhiều ưu điểm hơn phương pháp II (giải thuật Lloyd -Max), vì nódễ dàng cho tính toán và các vector lượng tử hoá có thể mở rộng. Chú ý là vấnđề mà chúng ta quan tâm ở đây là kho ảng cách lượng tử hoá, lượng tử hoá củahàm một biến đ ã biết được phân tán. Vector lượng tử hoá là một vector củanhiều biến m à với các biến này ta đ ã biết được phân tán. Thuật toán Lloyd theo các bước sau: 1 . Rút ra ước lượng cho phạm vi của các biến di {i = 0, 1, 2, ..., N} (Một ước lượng có thể rút ra bằng cách dùng các giá trị từ lượng tử hoáđồng đều ho ặc từ các mức lượng tử trước m à ta cần một kết quả tốt hơn). 2 . Đặt một biến D1= 0. D1 dùng để lưu lại tình trạng không chính xác lúctrước. 3 . Tính d i1 yp ( y )dy di r i d i 1 p ( y)dy di i = 0, 1, ..., N - 1 . 4 . Tính ri ri 1 di 2 i = 0 , 1, ..., N - 1 5 . Tính tình trạng không chính xác N 1d k 1 ( y rk ) 2 p( y )dy D2 k 0 d k Có thể dễ dàng mở rộng biểu thức trạng thái không chính xác theo N 1 d k 1 d k 1 d k 1 d p ( y )dy y 2 p ( y) 2rk yp ( y )dy rk2 (13.58) D dk dk k k 0 6 . Nếu D2 D1 D1 thì một giải pháp đã đ ược tìm ra. Lưu lại kết quả và thoát khỏi ch ươngtrình. 7 . Đặt D1 = D2 8 . Quay lại b ước 3. Một chương trình C cho giải thuật trên được đề cập đến ở dưới đây. 379 Chương trình 13.10 “LLOYDQ.C” Thuật toán Lloyd cho việc thiết kếcác mức lượng tử./*Program13.10 LLOYDO.C.Lloyd algorithm forquantizer design.*//* Program for designing the Lloyd-quantizer for a Gauss, uniform or Laplace distribution.*/#include #include #include #include #include double decision_level(double, double);double f1(double);double f2(double);double f3(double);double p(double);double Romberg(double, double, double(*)(double));char ch;void main( ) { double *r,*d,step,sum,I1,I2,I3,D1,D2; int i,j,m,N,xt,yt,niter,ind; char file_name[16],ch1; FILE *fptr; clrscr( ) ; printf(Enter number of bits--->); scanf(%d,&m); printf(Enter number of iterations-->); scanf(%d,&niter); N=1 printf( 3. Laplace. -->(1,2 or 3): ); while(((ch=getch())!=1)&&(ch!=2)&&(ch!=3)); putch(ch); printf( Do you wish to start from a previousdesign? (y or n)-->); while(((ch1=get ...
Nội dung trích xuất từ tài liệu:
Giáo trình xử lý ảnh y tế Tập 3 P16 printf( %d derivative=%f error=%f ,k,der,delta); if(fabs(delta)>=500.0) { printf( A numerical problem wasencountered.); printf( Restart problem with a differentchoice.); exit(1); } r[0]-delta/der; } gotoxy(70,25); textattr(WHITE+(BLACK } double p(double x) { double prob; switch(ch) { case 1: prob=exp(-x*x*0.5); break; case 2: prob=1.0; break; case 3: prob=exp(-1.4142136*fabs(x)); break; } return prob; }#define EPS 1.0e-6/*----------------------------------Calculating the next decision level,given values for d[i-11 and r[i-1].--------------------------------- */double decision_level(double di_1, double ri_1) { double delta,di,fun,dfun,ff,area1,area2; int i; if(fabs(di_1)>10.0) delta=2.0; else delta=0.1; di=ri_1+delta; i=0; /* Using Newton-Raphsons method for root finding.*/while(fabs(delta)>=EPS) { i++; if(i>=1000) { printf( no convergence. ); return di; } area1=Romberg(di-1,di,f1); area2=Romberg(di-1,di,f2); 376 ff=area1/area2; fun=(ri_1)-ff; if(fabs(area2) double T[10][10],h,x,Area; int N,k,kk,i,j; N=9; k=1 ; h=di- di_1; T[0][0]=h*((*f)(di_1)+(*f)(di))/2.0; for(i=1;ipháp này có nhiều ưu điểm hơn phương pháp II (giải thuật Lloyd -Max), vì nódễ dàng cho tính toán và các vector lượng tử hoá có thể mở rộng. Chú ý là vấnđề mà chúng ta quan tâm ở đây là kho ảng cách lượng tử hoá, lượng tử hoá củahàm một biến đ ã biết được phân tán. Vector lượng tử hoá là một vector củanhiều biến m à với các biến này ta đ ã biết được phân tán. Thuật toán Lloyd theo các bước sau: 1 . Rút ra ước lượng cho phạm vi của các biến di {i = 0, 1, 2, ..., N} (Một ước lượng có thể rút ra bằng cách dùng các giá trị từ lượng tử hoáđồng đều ho ặc từ các mức lượng tử trước m à ta cần một kết quả tốt hơn). 2 . Đặt một biến D1= 0. D1 dùng để lưu lại tình trạng không chính xác lúctrước. 3 . Tính d i1 yp ( y )dy di r i d i 1 p ( y)dy di i = 0, 1, ..., N - 1 . 4 . Tính ri ri 1 di 2 i = 0 , 1, ..., N - 1 5 . Tính tình trạng không chính xác N 1d k 1 ( y rk ) 2 p( y )dy D2 k 0 d k Có thể dễ dàng mở rộng biểu thức trạng thái không chính xác theo N 1 d k 1 d k 1 d k 1 d p ( y )dy y 2 p ( y) 2rk yp ( y )dy rk2 (13.58) D dk dk k k 0 6 . Nếu D2 D1 D1 thì một giải pháp đã đ ược tìm ra. Lưu lại kết quả và thoát khỏi ch ươngtrình. 7 . Đặt D1 = D2 8 . Quay lại b ước 3. Một chương trình C cho giải thuật trên được đề cập đến ở dưới đây. 379 Chương trình 13.10 “LLOYDQ.C” Thuật toán Lloyd cho việc thiết kếcác mức lượng tử./*Program13.10 LLOYDO.C.Lloyd algorithm forquantizer design.*//* Program for designing the Lloyd-quantizer for a Gauss, uniform or Laplace distribution.*/#include #include #include #include #include double decision_level(double, double);double f1(double);double f2(double);double f3(double);double p(double);double Romberg(double, double, double(*)(double));char ch;void main( ) { double *r,*d,step,sum,I1,I2,I3,D1,D2; int i,j,m,N,xt,yt,niter,ind; char file_name[16],ch1; FILE *fptr; clrscr( ) ; printf(Enter number of bits--->); scanf(%d,&m); printf(Enter number of iterations-->); scanf(%d,&niter); N=1 printf( 3. Laplace. -->(1,2 or 3): ); while(((ch=getch())!=1)&&(ch!=2)&&(ch!=3)); putch(ch); printf( Do you wish to start from a previousdesign? (y or n)-->); while(((ch1=get ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật xử lý hình ảnh xử lý tín hiệu cách xử lý hình ảnh tin học chuyên ngành chỉnh sửa hình ảnh trong y họcGợi ý tài liệu liên quan:
-
Bài giảng Tín hiệu và hệ thống - Hoàng Minh Sơn
57 trang 55 0 0 -
Giáo trình Tin học chuyên ngành: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh
93 trang 45 0 0 -
59 trang 36 0 0
-
Xử lý tín hiệu và lọc số (tập 2): Phần 1 - Nguyễn Quốc Trung
233 trang 33 0 0 -
Giáo trình xử lý ảnh y tế Tập 1b P18
7 trang 27 0 0 -
Giáo trình xử lý ảnh y tế Tập 1a P11
10 trang 27 0 0 -
66 trang 26 0 0
-
Giáo trình Matlab - Phan Thanh Tao
260 trang 25 0 0 -
Bài giảng Xử lý tín hiệu và mã hóa: Chương 1 - TS. Phạm Việt Hà
16 trang 25 0 0 -
Giáo trình Phương pháp tính và tin học chuyên ngành: Phần 1
124 trang 24 0 0