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 2 P10

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

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

Rút ra biến đổi ngược FFT của biến đổi tần số mở rộng. Kết quả thu được là ảnh gốc với độ phân giải tăng gấp đôi. Cần chú ý là các vật thể không lấy đủ mẫu trong ảnh gốc thì không cung cấp một sự phát triển trong độ phân giải.

Chủ đề:
Lưu

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

  1. w[i]=w[i-1]+winc; for(i=0;i
  2. float big,temp; N1=N+1; for(j=0;j
  3. H ình 9.8 Đáp ứng pha của bộ lọc IIR kích thước 3  3. { b ig=(float)fabs((double)a[k*N1+j]); l=k; } } if(big
  4. { for(k=j+1;k
  5. H d ( 1 ,  2 )  L ( 1,  2 ) B L ( 1 ,  2 ) 1  B L ( 1 ,  2 )  AL ( 1 ,  2 ) B L 1 ( 1 ,  2 ) B L 1 ( 1 ,  2 ) B L 1 ( 1 ,  2 ) (9.25) ở đ ây L=1,2,3,... Đặt B0(1,2) = 1.0 làm cho sai số trong phép lặp đầu tiên có dạng được dùng trong phương pháp Shanks. Các sai số về mặt lý thuyết sẽ tiếp cận các sai số không trọng số trong mỗi vòng lặp. Sự hội tụ sẽ đạt đư ợc khi BL (1 ,  2 )  BL 1 (1 ,  2 ) Ký hiệu sai số dư ới dạng  L ( 1 ,  2 ) B L ( 1 ,  2 ) (9.26)  ( 1 ,  2 )  B L 1 ( 1 ,  2 ) Chúng ta có thể viết : H d ( 1 ,  2 ) 1 (9.27)  ( 1 ,  2 )  B L ( 1 ,  2 )  AL ( 1 ,  2 ) B L 1 ( 1 ,  2 ) B L 1 ( 1 ,  2 ) Khi phép nhân trong miền tần số tương đương với tích chập trong miền không gian, chúng ta có thể viết : N N N N  L ( m, n )    (bij ) L h  L1 (m  i, n  j )     (aij ) L g L1 (m  i, n  j ) i 0 j 0 i 0 j 0 (9.28) 1 ở đây (9.29) G L 1 ( z1 , z 2 )  BL 1 ( z1 , z 2 ) H d ( z1 , z 2 ) và (9.30)  H L 1 ( z1 , z 2 )  B L 1 ( z1 , z 2 ) Bởi vì N N (bij ) L 1 z1i z 2 j  BL 1 ( z1 , z 2 )    (9.31) i 0 j 0 N N n ên  (bij ) L 1 g L 1 (m  i, n  j ) (9.32) g L 1 (m, n)   (m, n )   i 0 j 0 i j  0 N N hL 1 (m, n)  h d (m, n)     và  (bij ) L 1 hL 1 (m  i, n  j ) (9.33) i 0 j 0 i  j 0 189
  6. Xây dựng chuẩn L2 dùng sai số cho bởi biểu thức (9.28) ta có : M M2    ( m, n ) (9.34) QL   m 0 n 0 Lấy vi phân theo (alk)L và cho các biểu thức n ày bằng không N N M M   (aij ) L   g L1 (m  i, n  j) g L1 (m  l , n  k ) i 0 j 0 m 0 n 0 N N M M  (bij ) L   hL 1 (m  i, n  j ) g L 1 (m  l, n  k )   i 0 j 0 m 0 n 0 i  j 0 M M   hL1 (m, n) g L1 (m  l, n  k )   m 0 n 0 (9.35) ở đây l,k = 0,1,2,...,N. Đạo hàm theo (bP)L và cho các biểu thức n ày bằng không chúng ta có N N M M   (aij ) L   g L1 (m  i, n  j)hL 1 (m  l , n  k )  i 0 j 0 m 0 n 0 N N M M  (bij ) L   hL1 (m  i, n  j )hL1 (m  l, n  k )   i 0 j 0 m 0 n 0 i  j 0 M M   hL 1 (m, n)hL1 (m  l , n  k )    m0 n 0 (9.36) ở đ ây l,k = 0,1,2,...,N và l + k  0. Biểu thức (9.35) và (9.36) sinh ra 2(N + 1)  (N + 1) - 1 phương trình đại số tuyến tính. Ph ương trình này có thể viết dưới dạng ma trận:  C1 C2   F1  C T C X    F  (9.37)  2 3  2 ở đ ây C1 = m ột ma trận đối xứng [(N + 1)  (N + 1)]  [(N + 1)  (N + 1)]. 190
  7. C2 = một ma trận [(N + 1)  (N + 1)]  [(N + 1)  (N + 1) - 1 ]. C3 = một ma trận đối xứng [(N + 1)  (N + 1) - 1]  [(N + 1)  (N + 1)]. X = một vector chứa các hệ số của bộ lọc. F1và F2 = các vector có kích thước tương ứng [(N + 1)  (N + 1)] và [(N + 1)  (N + 1) - 1 ]. Chú ý rằng ma trận ở bên phải của biểu thức (9.37) là đối xứng. Các b ước lặp lại của thuật toán có thể mô tả bởi các bước sau : 1 . Dùng các phương pháp Shanks tính ra {a ij}0 và {bij}0 với L = 0,1,2,..., { 2 . Tính g L-1(m,n) và h‘L-1(m,n) từ biểu thức (9.32) và (9.33). 3 . Rút ra tập hợp của các ph ương trình đại số tuyến tính từ biểu thức (9.35) và (9.36). 4 . Giải ra các giá trị của {a ij}L và {b ij}L . } Trong phần lớn các trường hợp, luôn luôn đòi hỏi phải có một phép lặp. Hàm sai số (chuẩn L2) thường giảm mạnh trong lần lặp đầu tiên và sau đó giảm dần dần qua các lần lặp còn lại. Để kiểm tra phép lặp gần đúng n ày, chúng ta sẽ áp dụng ví dụ của bộ lọc thông cao có kích thước 2  2 cho ở phần 9.5. Các h ệ số của bộ lọc dùng các giả thiết Shanks cho ở bảng 9.1. Hàm sai số ban đầu, Q, cho trong biểu thức (9.12) được tính dùng các hệ số cho ở bảng 9.1 và kết quả là 0.001145. Sau một lần lặp, Q giảm xuống chỉ còn là 0.000770. Trong lần lặp thứ hai, nó giảm xuống 0.00078 và giữ nguyên giá trị này cho đến lần lặp thứ ba. Bài tập 9.1 Phát triển chương trình C “IIRDITER.C” dùng giả thiết lặp để thiết kế bộ lọc IIR. Giá trị ban đầu của hệ số nhập vào được rút ra từ lần chạy đầu tiên của chương trình 9.2. Chương trình cần đọc bậc của bộ lọc và hệ số ban đ ầu từ file. 9.7 Lọc ảnh dùng bộ lọc IIR Các bước thực hiện của biểu thức (9.2) cho lọc ảnh 2-D cũng giống như các bước thực hiện của bộ lọc FIR mà chúng ta đã nghiên cứu trong chương 3, ph ần 3.4 (xem hình 3.1). Sự khác nhau cơ bản trong trường hợp này là chúng ta cần hai bộ đệm chuyển đổi ảnh, một cho nhập vào và một chứa số lượng dòng cần thiết cho ảnh xuất ra. Mỗi một bộ đệm n ày đều có kích thước (N + 1)  độ rộng ảnh. Bộ đệm chuyển đổi nhập vào có thể có kiểu dữ liệu “char”. Bộ đệm chuyển đổi đầu ra nên có kiểu dữ liệu là ”float” ho ặc là “double”. Nếu chúng ta coi wx[i][j] và wy[i][j] là bộ đệm chuyển đổi nhập ảnh vào và xuất ảnh ra, th ì thu ật toán lọc IIR 2 -D có thể theo những b ước sau: 191
  8. 1 .Xoá bộ đệm chuyển đổi ảnh nhập vào và xu ất ra . 2 .Cho n = 0,1,2,...,(chiều d ài ảnh - 1). { a.Chuyển dòng thứ n của ảnh vào hàng đầu tiên của wx, ch ẳng hạn, wx[0][j] = ảnh [n][j]; j = 0,1,...,(chiều rộng ảnh - 1). b.Cho m = 0,1,2,...,(chiều rộng ảnh - 1). N N N N wy 0,m   a wxi ,m  j    bi , j wy i ,m j i, j i 0 j 0 i 0 j 0 i  j 0 3 .Chuyển hàng đầu tiên của wy vào một file xuất ra, chẳng hạn, xuất ra [n][j] = wy[0][j]; j = 0,1,2,...,(chiều rộng ảnh -1). 4 .Dịch chuyển các h àng của wx và wy đ ể h àng i+1  hàng i } Chương trình thực hiện giải thuật trên được cung cấp ở dư ới đây. Chương trình 9.3 “IIRFIL.C”. Lọc ảnh dùng bộ lọc IIR. /* Program 9.3 "IIRFILT.C".Program for filtering images using IIR fliters. */ /* This program is for filtering images using 2 -D iir filters. The filter's coefficients can be obtained from iird.exe or lirditer.exe. */ #include #include #include #include #include #include #include #include void m ain() { FILE *fptri,*fptro,*fptrt; unsigned char *buff,**wx,ch,*temp1; double nsq; float **wy,**a,**b,*temp2,*bufft; float max,min,scale,tt; int n,m,image_length,image_width,i,j,N,N1,ind; int true_length,true_width,yt; 192
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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