intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Cinny Cinny | Ngày: | Loại File: PDF | Số trang:9

103
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lượng tử hoá đồng đều Đây là dạng đơn giản nhất của lượng tử hoá. Trong dạng lượng tử hoá này, khoảng (yu - yL) được chia thành N khoảng cách đều nhau (xem trong hình 13.14). Các giá trị từ d0 đến d N được gọi là các mức chia.

Chủ đề:
Lưu

Nội dung Text: Giáo trình xử lý ảnh y tế Tập 3 P15

  1. 13.5.1 Lượng tử hoá đồng đều Đây là dạng đơn giản nhất của lượng tử hoá. Trong dạng lư ợng tử hoá này, khoảng (yu - yL) đư ợc chia thành N kho ảng cách đều nhau (xem trong hình 13.14). Các giá trị từ d0 đ ến d N được gọi là các mức chia. Các m ức lư ợng tử biểu diễn giá trị thực của các mức chia trong khoảng từ d i đ ến di+1 d ưới dạng số nhị phân bằng i. Vì vậy, nếu như di+1 < y  d i thì giá trị của lư ợng tử đầu ra = i. Mức lượng tử đầu ra có thể biểu diễn theo công thức:  y  yL  i ( N  1)   yv  y L  ở đây dấu   có n gh ĩa là làm tròn thành số nguyên gần nhất. Lư ợng tử hoá ngược dùng một bảng biến đổi ngược giữa giá trị lư ợng tử i và biến đổi ngược của nó ri d i  d i 1 ri  2 Tuy nhiên lượng tử hoá đồng đều không quan tâm đến khả năng xảy ra của sự kiện với các giá trị được đưa ra. Tổng quát, quá trình lượng tử hoá này áp dụng cho trư ờng hợp tất cả các mức có khả năng xuất hiện bằng nhau. Điều này, trong hầu hết các trường hợp là không đúng. Dễ nhận thấy là các mức lượng tử hoá tập trung nhiều nhất vào miền m à kh ả năng xuất hiện của các mức xám nhiều nhất. Điều n ày dẫn chúng ta đến phương pháp thiết kế lượng tử hoá dưới đây. Tín hiệu Lượng Mức dạng nhị Tín hiệu tử hoá đ ược tái Tín hiệu phân. tương tự. ngược thiết. ánh sáng. Bộ lọc hay thông biến đổi thấp. số sang t t Hình 13.15 Lượng tử hoá ngược. 13.5.2 Lượng tử hoá không đồng đều Trong phần n ày chúng ta sẽ xem xét phương pháp lượng tử hoá không đồng đều tối ưu nh ất trong hệ thống PCM. Các nghiên cứu cho phương pháp này đã được Panter và Dite đưa ra trong một cuốn sách xuất bản vào năm 1949. Trong cuốn sách này h ọ đã đưa giải thuật cho lượng tử hoá không đồng đều. Họ đưa ra một phương pháp xấp xỉ tối ưu cho lượng tử hoá không đồng đều. Giải thuật 366
  2. này sẽ không đúng cho các trường hợp quá trình lượng tử hoá có quá ít mức chia. Tuy nhiên các giải thuật này đư ợc phát triển một các trọn vẹn trong một báo cáo chưa được xuất bản của Llo yd vào năm 1957 và được Max kiểm nghiệm vào năm 1960. Một phương pháp lư ợng tử hoá kết hợp cả hai phương pháp của Lloyd và Max thường được gọi là phương pháp lượng tử hoá Lloyd- Max. Trong ph ần báo cáo xuất bản sau đó của Lloyd xuất bản vào năm 1982 đã cho thấy có rất nhiều ứng dụng rất thú vị của phương pháp này. Bản báo cáo này có hai phương pháp thiết kế, một ph ương pháp trong đó giống phương pháp của Max. Phương pháp này gọi là phương pháp II. Phương pháp I tỏ ra có nhiều ứng dụng và dễ tính toán hơn phương pháp II. Cả hai phương pháp thiết kế n ày đều được trình bày ở phần dưới đây. Nếu chúng ta coi rằng các mức lư ợng tử hoá được cho bởi d i , i = 0 ... N (xem hình 13.16) và các mức khôi phục cho bởi ri , i = 0 ... N và giá trị đo của tất cả các mức này cho bởi: N d k 1   ( y  rk ) 2 p( y)dy (13.49) E k 0 d k ở đ ây y là tín hiệu đầu vào còn p (y) là khả năng xuất hiện của y. H ình 13.16 Các mức lấy mẫu và khôi phục. mẫu i y(t) ri Lượng tử hoá. Lượng tử hoá ngược. y yu dN i ri N- 1 367 d N-1 Các mức chia. r0 d5 . . d4 Mẫu 3 d3 . . 2 d2 . . 1 d1
  3. Hình 13.17 Các xử lý lấy mẫu và khôi phục. Hình 13.17 cung cấp sơ đồ khối của quá trình lượng tử hoá và lượng tử hoá ngược. Tín hiệu vào y(t) phải được coi là đã biết khả năng xuất hiện. Vấn đề đặt ra là phải xác định các mức lấy mẫu và các mức khôi phục sao cho méo tín hiệu là nhỏ nhất. Viết lại biểu thức (13.49 ): d1 di 2 2 E   ( y  r0 ) p ( y ) dy  ...   ( y  ri 1 ) p ( y ) dy  d0 di 1 d i 1 d n 1 2 ) 2 p( y )dy (13.50) (y  r ) p( y)dy  ...  (y  r i N di dN Vi phân (13.50) theo d I và cho biểu thức n ày bằng không chúng ta được ri  ri 1 (13.51) di  2 i = 1,2,3, ... ,N Lấy vi phân (13.50) theo ri chúng ta được. d i 1 E  2  ( y  ri ) p ( y ) dy ri d i d i 1  yp( y)dy di (13.52) ri  d i1  p( y )dy di i = 0, 1, ... , N - 1. 368
  4. H ình 13.18 Phương pháp Newton-Raphson cho tính các biểu thức trong ngoặc. Biểu thức (13.50) và biểu thức (13.51) đưa ra phương pháp xác đ ịnh các mức lấy mẫu và các mức khôi phục dùng cho cả phương pháp của Lloyd-Max ho ặc là phương pháp Lloyd. Phương pháp Lloyd-Max Lloyd và Max đã phát triển độc lập thuật toán để giải quyết biểu thức (13.50) và (13.51). Các chi tiết của thuật toán n ày vẫn chưa được cung cấp. Trong phần này tôi sẽ cung cấp cho bạn một thuật toán dựa trên thu ật toán Lloyd-Max nhưng có các chi tiết cụ thể h ơn. Tôi cũng sẽ cung cấp cho bạn phần mềm thiết kế N mức lấy mẫu và khôi phục. Thu ật toán này gồm các bước sau: 1 . Chọn một giá trị cho r0. d 0 và d N được coi là đã biết. 2 . Cho i = 1,2,...,N - 1 . a. Tính di từ di  yp( y )dy d i 1i ri 1  di  p( y )dy d i 1 b. Tính ri từ ri  2d i  ri 1 3 . Tính dN  yp( y )dy d N 1 r/  dN  p( y )dy d N 1 4 . Nếu rN-1  r/, thay đ ổi lại r0 và lặp lại các bước từ bước 2 cho đến bư ớc 4. 369
  5. Bây giờ tôi sẽ cung cấp cho bạn các chi tiết cần thiết để tạo ra thuật toán trên. Chi tiết cho việc tính d i trong bư ớc 2a của thuật toán Lloyd-Max. di có thể tính theo hàm sau đây: di  yp( y )dy d i 1 (13.53) f (d i )  ri 1  di  p( y)dy di 1 Có thể rút ra biểu thức gốc theo công thức lặp Newton -Raphon được cho bởi: f (d il ) d il 1 d il (13.54)   f / (d il ) ở đây l là số lần lặp và f/(di) là đạo hàm của f(d i) theo di cho theo công thức: di    yp ( y )dy   p(d i )   di 1 f / (d i )   d (13.50) d i   di i    p( y )dy   p( y)dy    d i 1 d i 1   d 0i là giá trị ban đầu. Phép lặp diễn ra cho đến khi f (di )   Giá trị ban đầu cho d1 là d0 + , cho d2 là d1 + , ..., ở đây  là một giá trị nhỏ. Giá trị gốc của f(d i) có th ể tính theo dùng phương pháp nửa lặp (bisection). Ưu điểm của phương pháp Newton -Raphson là khả năng hội tụ nhanh. Nhược điểm là đạo h àm của một hàm thường có giá trị rất nhỏ và dễ dẫn đến giá trị zero gây nên sự không ổn định của các số. Các chi tiết cho việc thay đổi r0. Giá trị r0 có thể thay đổi lại nếu chúng ta nh ận thấy rằng giá trị gốc của h àm: g ( r0 )  rN 1  r / (13.56) Giá trị gốc này có th ể rút ra dùng các giả thiết của Newton-Raphson theo: g (r0l ) r0l 1  r0l  (13.57) g / (r0l ) Đạo h àm của g (r0) có thể rất khó khăn cho việc phân tích. Trong trường hợp này cần có một công cụ tính toán khác. Chúng ta có thể thay thế đạo hàm b ằng 370
  6. một giá trị hằng số có cùng d ấu như biểu thức trong dấu ngoặc (xem hình 13.8). Trong trường hợp n ày thì tích phân lâu hội tụ hơn. Tiếp theo là một chương trình cho tính các mức lượng tử hoá theo phương pháp Lloyd-Max. Tích phân được đưa ra dùng phương pháp tích phân Romberg bởi vì nó chính xác hơn phương pháp tích phân Simpson. Chương trình cho phép b ạn thiết kế lư ợng tử hoá đồng đều, Gauss hoặc là Laplace. 1 2 / 2 2 ) e ( y Gauss p( y )  2 2   y Laplace p( y )  e 2 2   1 | y |
  7. #include #include double decision_level(double , double); double f1(double); double f2(double); double p(double); double Romberg(double, double, double (*)(double)); char ch; void main() { double *r,*d,r1,delta,alpha; int i,m,N,k,xt,yt; double der,rt,deltal, delta2; char ch1,file_name[16]; FILE *fptr; clrscr(); printf("Enter number of bits --- >"); scanf("%d",&m); N=1
  8. printf("\n\n The program uses Newton-Raphson's method"); printf("\n to compute the proper value of r[01. You have"); printf("\n a choice between using calculated values, a"); printf("\n fixed value or decreasing values for the "); printf("\n derivatives at every update or calculated "); printf("\n values. Always pick the first choice unless "); printf("\n you encounter numerical problems."); xt=wherex(); yt=wherey(); gotoxy(1,21); printf("Recommendations: Guassian or Uniform select I or 2.\n"); printf(" Laplace select 3."); gotoxy(xt,yt); printf("\n Enter choice:"); printf("\n 1. Calculated derivative of the error function."); printf("\n 2. Fixed value."); printf("\n 3. Decreasing derivative.-->"); while(((ch1=getch())!='1')&&(ch1!='2')&&(ch1!='3')); putch(ch1); gotoxy(1,21); delline(); delline(); delta=20.0; k=0; xt=wherex(); yt=wherey(); gotoxy(70,25); textattr(WHITE+(GREEN=1000) break; /* Computing the derivative of the function: f(r[0])=r[N-1]-r1, numerically. */ switch(ch1) 373
  9. { case '1': rt=r[0]; r[0]=r[0]+0.001; for(i=1;i
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2