Professional Documents
Culture Documents
Hình 1.1
G.N Housfield
Chiếc máy của ông giúp cho các bác sỹ có thể “nhìn”, quan sát các kết cấu của
các mô bên trong các bộ phận của cơ thể mà không cần phải tiến hành phẫu thuật.
Nhờ vào đó các bác sỹ có thể chẩn đoán bệnh một cách nhanh chóng và chính
xác.
Hình 1.2
Máy chụp cắt
lớp
2.
2.1.2 Thiết bị
Về căn bản, máy chụp cắt lớp có hai bộ phận chính là máy phát tia X và máy thu
các tia X. Các tia này được gọi là các tia chiếu. Nếu máy phát phát ra n tia X thì
máy thu sẽ có n đầu cảm biến thu nhận cường độ của n tia X đó. Mỗi đầu cảm
biến tương ứng với một tia chiếu. Hai máy thu và phát này có thể quay xung quanh
đối tượng cần chụp để chụp nhiều góc độ khác nhau, gọi là các góc chiếu.
Hình 2.2
Mô hình hoạt
động của máy
chụp cắt lớp
Như vậy ở đầu ra của máy chụp, tín hiệu thu được là tập các cường độ của các tia
chiếu. Sau đó những tín hiệu này được xử lý, tính toán chuyển đổi về hình ảnh của
lát cắt được chụp.
I − ∫ f ( x , y )du
=e L
I0
I
↔ ln 0 = ∫ f (x, y )du
I L
Xét một chùm tia chiếu từ máy thu đến mày phát, quy ước như sau:
• Chọn tia chiếu ở chính giữa máy phát làm mốc, gọi đó là tia chiếu gốc. Khoảng
cách từ một tia chiếu bất kỳ đến tia chiếu gốc là s. Tia chiếu gốc có s = 0.
I
Bây giờ đặt g (s, θ ) = ln 0 , ta có công thức sau:
I
Vậy có thể nói g (s, θ ) là tổng tích luỹ tính chất của các mô đối với tia X, dọc theo tia
chiếu ở khoảng cách s và góc chiếu θ
Hình 2.3
s, θ)
Phép chiếu
g(
Hình 2.4
Mô hình 1
Phép biến đổi Radon ngược lại được chia làm hai loại tuỳ thuộc vào kiểu lọc được
sử dụng mà ta sẽ xét ở các phần sau.
Từ Công thức 2.2 và hai công thức trên, ta có phép biến đổi Radon được định
nghĩa như sau:
Về ý nghĩa có thể phát biểu phép chiếu quay lui như sau: Năng lượng tại mỗi điểm
(x, y) trên đối tượng sau phép chiếu quay bằng tổng tích lũy của những điểm
tương ứng trên g (s,θ ) tại mỗi góc chiếu θ .
Phép chiếu quay lui cho kết quả bị “mờ” đi so với ảnh của đối tượng gốc, để xây
dựng lại chính xác hình ảnh của đối tượng, cần phải thông qua một phép nhân
chập
Phép biến đổi ngược dựa chủ yếu vào phép chiếu quay lui. Như ta đã biết phép
chiếu quay lui không cho kết quả giống hệt như hình ảnh ban đầu của đối tượng
Có hai con đường đi (xem Hình 2.5): chiếu quay lui trước, lọc sau và lọc trước,
chiếu quay lui sau
Trong đó phép biến đổi Fourier thuận và ngược được thực hiện bằng DFT hoặc
FFT, cũng như IDFT và IFFT.
Lọc trên miền tần số được thực hiện bởi một số bộ lọc sau, với các dáp ứng tần số
tương ứng
Trong bảng trên f ( -0.5 ≤ f ≤ 0.5) là biến trong miền tần số, d là tần số lấy mẫu.
Hàm rect là hàm chữ nhật được định nghĩa như sau
1,−.05 ≤ x ≤ 0.5
rect ( x) =
0, c¸c tr-êng hîp cßn l¹i
3.
Phần này sẽ tiến hành một số thử nghiệm về phép biến đổi Radon và dựng lại ảnh
từ hình chiếu được ứng dụng trong máy chụo cất lớp.
• RadonLab (do em: Mai Thành Trung cùng bạn Nguyễn Quang Khánh viết)
• MatLab
• Computerized Tomography, Michael Liebling một phần mềm chạy trực tuyến
trên mạng tại địa chỉ: http://bigwww.epfl.ch/demo/jtomography/index.html
Chức năng của ba phần mềm này đều giống như nhau, nhưng cả ba được sử
dụng nhằm có một sự so sánh và đánh giá về chất lượng phần mềm do bọn em
viết.
• Lựa chọn file ảnh đầu vào bằng nút “Mo file”. Ảnh đầu vào sẽ xuất hiện ở góc
trái trên của màn hình.
• Nhấn nút “bien doi Radon >>” để thực phép biến đổi Radon, kết quả là hình
sinogram được hiển thị tại góc trên bên tay phải.
• Sau đó lựa chọn bộ lọc được sử dụng trong ô “Chon bo loc”.
• Nhấn nút “Loc >>” để lọc sinogram, kết quả sẽ được hiển thị tại góc dưới bên
trái.
3.2.2 Một số ví dụ
Hình ảnh lấy ví dụ là bức ảnh có tên là phantom256.gif có trong thư mục.
• Sau khi nhấn nút “Mo File”, hình ảnh đó được hiện lên như sau:
Hình 3.2
Chương trình
RadonLab -
đọc ảnh đầu
vào
• Tiếp theo đó nhấn nút “Bien doi Radon >>” để dựng sinogram của bộ lọc, kết
quả được như hình dưới đây:
Hình 3.4
Chương trình
RadonLab -
biến đổi Radon
• Tiếp theo, một bộ lọc được lựa chọn. Nếu không chọn bộ lọc nào, nhấn vào lựa
chọn “Khong loc” rồi nhất nút “Loc >>”, kết quả được như hình dưới đây:
Hình 3.7
Sinogram
không dùng bộ
lọc - dựng bởi
RadonLab
• Vì không bộ lọc nào được sử dụng, nên sinogram đã lọc và sau khi lọc la giống
nhau.
• Giả sử bộ lọc RamLak được chọn, hộp lựa chọn RamLak được nhấn, sau đó
nhấn nút “Loc >>”, kết quả sẽ được như hình dưới đây:
Hình 3.9
Sinogram sau
khi lọc bằng bộ
lọc Ramlak vởi
chương trình
RadonLab
• Nếu không sử dụng bộ lọc, sau khi nút “chiếu quay lui” được nhất, kết quả sẽ
được như hình dưới đây:
Hình 3.10
Chương trình
RadonLab -
chiếu quay lui
không lọc
• Còn nếu sử dụng bộ lọc, sau khi nút “chiếu quay lui” được nhất, kết quả sẽ
được như hình dưới đây:
Hình 3.13
Hình dựng lại
dùng bộ lọc
RamLak –
chương trình
RadonLab
• Ảnh sau khi dựng lại đều cho hình dánh giống hệt ảnh cũ nhưng màu sắc khác
hẳn.
• Ảnh dựng lại không dùng lọc cho kết quả mờ hơn ảnh gốc, điều này phù hợp
với lý thuyết là phép chiếu quay lui cho ảnh mờ hơn so với ảnh gốc.
• Ảnh dựng lại có dùng bộ lọc cho màu sắc gần giống với ảnh gốc hơn so với ảnh
không dùng bộ lọc nhưng vẫn còn nhiều sai số. Nguyên nhân của sai số này có
thể do một trong 2 trường hợp sau:
• Kỹ năng lập trình của em và bạn Khánh có giới hạn nên mắc phải các sai số
trong quá tình tính toán - Để khẳng định điều này, hai chương trình thí
nghiệm khác đã được sử dụng trong các phần dưới để so sánh với chương
trình của em.
• Dữ liệu ảnh đầu vào là số nguyên, nhưng thực tế đầu ra của máy chụp cắt
lớp là dạng số thực nên gây nên sai số lớn.
3.2.4 Một số nhược điểm của chương trình:
• Tốc độ chậm, đặc biệt khi tính toán với những ảnh kích thước lớn. Kích thước
chuẩn của chương trình là 256 x 256 pixels. Nguyên nhân là do thực hiện nhiều
phép tính với số thực với độ phức tạp tính toán lớn. Điều này còn thể hiện rõ
hơn trong phép lọc phải thực hiện rất nhiều phép tính. Hơn thế nữa phép lọc sử
dụng phép biến đổi DFT thay vì FFT nên cho thời gian tính toán rất lâu.
• Kết quả ảnh dựng lại chưa chính xác.
• Đôi khi xuất hiện “lỗi hết bộ nhớ”
3.3 Matlab
Matlab được trang bị một toolbox có chức năng thực hiện phép biến đổi Radon và
dựng lại hình chiếu chỉ với một vài lệnh đơn giản.
Những ví dụ dưới đây được thực hiện với Matlab phiên bản 7.0. Toàn bộ mã
nguồn dưới đây được lưu trong file RadonTest.m.
Trong matlab đã chứa sẵn ảnh gốc như trong ví dụ của chương trình RadonLab.
Nạp ảnh đó vào bộ nhớ như sau:
P = phantom(256);
imshow(P)
title(’Anh goc ban dau’);
Hình 3.15
Ví dụ trong
MatLAb - Ảnh
đầu vào
• Đoạn lênh dưới đây tạo góc chiếu cho phép biến đổi Radon, ở đây chương trình
định sử dụng ba ví dụ với các góc chiếu khác nhau:
N_R1 = size(R1,1)
N_R2 = size(R2,1)
N_R3 = size(R3,1)
P_128 = phantom(128);
[R_128,xp_128] = radon(P_128,theta1);
N_128 = size(R_128,1)
figure, imagesc(theta3,xp,R3)
colormap(hot)
colorbar
xlabel('Goc quanh - \theta (degrees)');
ylabel('vi tri cua cam bien - x\prime (pixels)');
Hình 3.16
Ví dụ trong
MatLab -
Sinogram
Với số góc chiếu nhỏ (18 góc chiếu, cách nhau 100), đoạn mã sau được thực hiện,
kết quả cho như hình dưới
output_size = max(size(P));
Hình 3.17
Ví dụ trong
MatLab – hình
dựng lại với số
góc chiếu nhỏ
Hình 3.18
Ví dụ trong
MatLab – hình
dựng lại với số
góc chiếu trung
bình
Hình 3.19
Ví dụ trong
MatLab - dựng
lại hình với số
góc chiếu lớn
Cấu trúc và cách thực hiện chương trình khá giống với RadonLab: lựa chọn ảnh
đầu vào, thực hiện chiếu Radon, lựa chọn một bộ lọc và lọc, dựng lại hình sau khi
đã lọc.
Hình 3.20
Chương trình
Computerized
Tomography
dựng lại hình
không dùng lọc
[1] “Fundamentals of digital image processing”, Anil K.Jain, Prentice – Hall, 1998
[2] “Digital image processing, reconstruction from projection”, Bern Girod
[3] “The Mathematics of Computerized Tomography”, F.Natterer, SIAM Publications,
Philadelphia, 2001.
[4] “Biomedical Imaging Group”, http://bigwww.epfl.ch
[5] “Electron microscopy: Back projection”, http://cryoem.berkeley.edu