Upload
momen-nabil
View
223
Download
0
Embed Size (px)
Citation preview
8/10/2019 CT Ch6 Part1
1/58
Computed Tomography
(Part 1)
Yao Wang
Polytechnic School of Engineering
New York University, Brooklyn, NY 11201
Based on Prince and Links, Medical Imaging Signals and Systems and
Lecture Notes by Prince. Figures are from the book.
EL-GY 6813 / BE-GY 6203 / G16.4426
Medical Imaging
8/10/2019 CT Ch6 Part1
2/58
F14 Yao Wang @ NYU
Lecture Outline
Instrumentation
CT Generations
X-ray source and collimation
CT detectors
Image Formation
Line integrals
Parallel Ray Reconstruction
Radon transform
Back projection
Filtered backprojection
Convolution backprojection
Implementation issues
2
8/10/2019 CT Ch6 Part1
3/58
F14 Yao Wang @ NYU
Limitation of Projection Radiography
Projection radiography
Projection of a 2D slice along one direction only
Can only see the shadowof the 3D body
CT: generating many 1D projections in different angles
When the angle spacing is sufficiently small, can reconstruct the
2D slice very well
3
8/10/2019 CT Ch6 Part1
4/58
F14 Yao Wang @ NYU
1stGeneration CT: Parallel Projections
4
8/10/2019 CT Ch6 Part1
5/58
F14 Yao Wang @ NYU
2ndGeneration
5
8/10/2019 CT Ch6 Part1
6/58
8/10/2019 CT Ch6 Part1
7/58F14 Yao Wang @ NYU
4G
FastCannot use
collimator atdetector, hence
affected byscattering
7
8/10/2019 CT Ch6 Part1
8/58F14 Yao Wang @ NYU
5G: Electron Beam CT (EBCT)
Stationary source and detector.Used for fast (cine) whole heart imaging
Source of x-ray moves around by steering an electronbeam around X-ray tube anode.
8
8/10/2019 CT Ch6 Part1
9/58F14 Yao Wang @ NYU
6G: Helical CT
Entire abdomen or chest can be completed in 30 sec.
9
8/10/2019 CT Ch6 Part1
10/58F14 Yao Wang @ NYU
7G: Multislice
From http://www.kau.edu.sa/Files/0008512/Files/19500_2nd_presentation_final.pdf
10
8/10/2019 CT Ch6 Part1
11/58F14 Yao Wang @ NYU
Reduced scan time and increased Z-resolution (thin slices)Most modern MSCT systems generates 64 slices per rotation, can image
whole body (1.5 m) in 30 sec.
From http://www.kau.edu.sa/Files/0008512/Files/19500_2nd_presentation_final.pdf
11
8/10/2019 CT Ch6 Part1
12/58F14 Yao Wang @ NYU
Generation Source Source Collimation Detector
1st Single X-ray Tube Pencil Beam Single
2nd Single X-ray Tube Fan Beam (not enough to cover FOV) Multiple
3rd Single X-ray Tube Fan Beam (enough to cover FOV) Many
4th Single X-ray Tube Fan Beam covers FOV
Stationary
Ring of
Detectors
5th
Many tungsten
anodes in single
large tube Fan Beam
Stationary
Ring of
Detectors
6th 3G/4G 3G/4G 3G/4G
7th Single X-ray Tube Cone Beam
Multiple
array of
detectors
From http://www.kau.edu.sa/Files/0008512/Files/19500_2nd_presentation_final.pdf
12
8/10/2019 CT Ch6 Part1
13/58F14 Yao Wang @ NYU
From http://www.kau.edu.sa/Files/0008512/Files/19500_2nd_presentation_final.pdf
13
8/10/2019 CT Ch6 Part1
14/58F14 Yao Wang @ NYU
X-ray Source
14
8/10/2019 CT Ch6 Part1
15/58
Dual Energy CT
Recall that linear attenuation coefficient depends on theX-ray energy
Dual energy CT enables simultanious acquisition to two
images of the organ, reflecting their attenuation profilescorresponding to different energies
The scanner has two x-ray tubes using two different
voltage levels to generate the x-rays.
F14 Yao Wang @ NYU 15
8/10/2019 CT Ch6 Part1
16/58F14 Yao Wang @ NYU
X-ray Detectors
Convert detected photons to lights
Convert light to electric current
16
8/10/2019 CT Ch6 Part1
17/58F14 Yao Wang @ NYU
CT Measurement Model
17
8/10/2019 CT Ch6 Part1
18/58F14 Yao Wang @ NYU 18
I_0 must be calibrated for each detector, measured in the absence of
attenuating objects
8/10/2019 CT Ch6 Part1
19/58F14 Yao Wang @ NYU
CT Number
Need 12 bits to represent, h=-1000 for air..
Godfrey Hounsfield, together with Alan Cormack, invented X-ray CT!
19
8/10/2019 CT Ch6 Part1
20/58F14 Yao Wang @ NYU
Parameterization of a Line
s
x
y
= l
Option 1 (parameterized bys):
Option 2:
Each projection line isdefined by (l,!)
A point on this line (x,y) can
be specified with two options
20
8/10/2019 CT Ch6 Part1
21/58F14 Yao Wang @ NYU
Line Integral: parametric form
21
8/10/2019 CT Ch6 Part1
22/58
F14 Yao Wang @ NYU
Line Integral: set form
22
8/10/2019 CT Ch6 Part1
23/58
F14 Yao Wang @ NYU
Physical meaning of f
& g
23
8/10/2019 CT Ch6 Part1
24/58
F14 Yao Wang @ NYU
What is g(l,)?
24
8/10/2019 CT Ch6 Part1
25/58
F14 Yao Wang @ NYU
Example
Example 1: Consider an image slice which contains a
single square in the center. What is its projections along0, 45, 90, 135 degrees?
Example 2: Instead of a square, we have a rectangle.Repeat.
25
8/10/2019 CT Ch6 Part1
26/58
F14 Yao Wang @ NYU
Sinogram
26
Bottom row: !=0 (vertical proj), middle !="/2 (horizontal proj), top !="-d!
8/10/2019 CT Ch6 Part1
27/58
F14 Yao Wang @ NYU
Backprojection
The simplest method for reconstructing an image from a
projection along an angle is by backprojection
Assigning every point in the image along the line defined by (l,!) theprojected value g(l, !), repeat for all l for the given !
s
x
y
27
8/10/2019 CT Ch6 Part1
28/58
F14 Yao Wang @ NYU 28
8/10/2019 CT Ch6 Part1
29/58
F14 Yao Wang @ NYU
Example
Continue with the example of the image with a square in
the center. Determine the backprojected image fromeach projection and the reconstruction by summing
different number of backprojections
29
8/10/2019 CT Ch6 Part1
30/58
F14 Yao Wang @ NYU
Two Ways of Performing Backprojection
Option 1: assigning value of g(l, !) to all points on the line (l, !)
g(l, !) is only measured at certain l: ln=n #l If l is coarsely sampled (#l is large), many points in an image will not be
assigned a value
Many points on the line may not be a sample point in a digital image
Option 2: For each !, go through all sampling points (x,y) in animage, find its corresponding l=x cos !+y sin !, take the g valuefor (l, !)
g(l, !) is only measured at certain l: ln=n #l
must interpolate g(l, !) for any l from given g(ln, !)
Option 2 is better, as it makes sure all sample points in an image are
assigned a value
For more accurate results, the backprojected value at each pointshould be divided by the length of the underlying image in theprojection direction (if known)
30
8/10/2019 CT Ch6 Part1
31/58
F14 Yao Wang @ NYU
Backprojection Summation
Replaced by asum in practice
31
8/10/2019 CT Ch6 Part1
32/58
F14 Yao Wang @ NYU
Implementation Issues
From L. Parra at CUNY, http://bme.ccny.cuny.edu/faculty/parra/teaching/med-imaging/lecture4.pdf32
g(:,phi) stores the projection data at angle phi corresponding to excentricities stored in s_n
8/10/2019 CT Ch6 Part1
33/58
F14 Yao Wang @ NYU
Implementation: Projection
To create projection data using computers will have similar problems.Possible l and !are both quantized. If you first specify (l,!), then find (x,y)that are on this line. It is not easy. Instead, for given !, you can go throughall (x,y) and determine corresponding l, quantize l to one of those you wantto collect data.
Sample matlab code (for illustration purpose only)
f(x,y) stores the original image data
G(l,phi) stores projection data, ql is the desired quantization stepsize for l.
N=ceil(sqrt(I*I+J*J))+1; %(assume image size IxJ), N0 is maximum lateral distance
N0= floor((N-1)/2);ql=1;
G=zeros(N,180);
for phi=0:179for (x=-J/2:J/2-1; y=-I/2:I/2-1)
l=x*cos(phi*pi/180)+y*sin(phi*pi/180);
l=round(l/ql)+N0+1;If (l>=1) && (l
8/10/2019 CT Ch6 Part1
34/58
F14 Yao Wang @ NYU
Problems with Backprojection
!Blurring
34
8/10/2019 CT Ch6 Part1
35/58
F14 Yao Wang @ NYU
Projection Slice Theorem
The Fourier Transform of a projection at angle !is a line in theFourier transform of the image at the same angle.
If (l,!) are sampled sufficientlydense, then from g (l,!) weessentially know F(u,v) (on the polar coordinate), and by inverse
transform we can obtain f(x,y)!
dlljlgG }2exp{),(),( !"##" $=%&
&$
35
Ill t ti f th P j ti Sli
8/10/2019 CT Ch6 Part1
36/58
F14 Yao Wang @ NYU
Illustration of the Projection Slice
Theorem
36
8/10/2019 CT Ch6 Part1
37/58
F14 Yao Wang @ NYU
Proof
Go through on the board
Using the set form of the line integral
See Prince&Links, P. 203 (2ndedition)
dlljlgG }2exp{),(),( !"##" $=%&
&$
37
8/10/2019 CT Ch6 Part1
38/58
F14 Yao Wang @ NYU
The Fourier Method
The projection slice theorem leads to the following
conceptuallysimple reconstruction method
Take 1D FT of each projection to obtain G($,!) for all !
Convert G($,!) to Cartesian grid F(u,v)
Take inverse 2D FT to obtain f(x,y)
Not widely used because
Difficult to interpolate polar data onto a Cartesian grid
Inverse 2D FT is time consuming
But is important for conceptual understanding
Take inverse 2D FT on G($,!) on the polar coordinate leads tothe widely used Filtered Backprojectionalgorithm
38
8/10/2019 CT Ch6 Part1
39/58
F14 Yao Wang @ NYU
Filtered Backprojection
Inverse 2D FT in Cartesian coordinate:
Inverse 2D FT in Polar coordinate:
Proof of filtered backprojection algorithm
Inverse FT
! ! +
= dudvevuFyxf yvxuj )(2),(),( "
! !>" #>"+
=
$
%%$& %&&%&%&
20 0
)sincos(2)sin,cos(),( ddeFyxf yxj
=l=G(",!)
39
8/10/2019 CT Ch6 Part1
40/58
F14 Yao Wang @ NYU
Filtered Backprojection Algorithm
Algorithm:
For each !
Take 1D FT of g(l,!) for each !-> G($,!)
Frequency domain filtering: G($,!) -> Q($,!)=|$|G($,!)
Take inverse 1D FT: Q($,!) -> q(l,!)
Backprojecting q(l,!) to image domain -> b!(x,y)
Sum of backprojected images for all !
40
8/10/2019 CT Ch6 Part1
41/58
F14 Yao Wang @ NYU
Function of the Ramp Filter
Filter response:
c($) =|$|
High pass filter
G($,!) is more denselysampled when $is small, and
vice verse The ramp filter compensate
for the sparser sampling athigher $
41
8/10/2019 CT Ch6 Part1
42/58
F14 Yao Wang @ NYU
Convolution Backprojection
The Filtered backprojection method requires taking 2 Fourier
transforms (forward and inverse) for each projection
Instead of performing filtering in the FT domain, perform convolutionin the spatial domain
Assuming c(l) is the spatial domain filter
|$| c(l)
|$|G($,!) c(l) * g(l,!)
For each !:
Convolve projection g(l,!) with c(l): q(l,!)= g(l,!) * c(l)
Backprojecting q(l,!) to image domain -> b!(x,y)
Add b!(x,y) to the backprojection sum
Much faster if c(l) is short
Used in most commercial CT scanners
42
8/10/2019 CT Ch6 Part1
43/58
F14 Yao Wang @ NYU 43
8/10/2019 CT Ch6 Part1
44/58
F14 Yao Wang @ NYU
Step 1: Convolution
44
8/10/2019 CT Ch6 Part1
45/58
F14 Yao Wang @ NYU
Step 2: Backprojection
45
8/10/2019 CT Ch6 Part1
46/58
F14 Yao Wang @ NYU
Step 3: Summation
46
8/10/2019 CT Ch6 Part1
47/58
F14 Yao Wang @ NYU
Ramp Filter Design
47
8/10/2019 CT Ch6 Part1
48/58
F14 Yao Wang @ NYU
The Ram-Lak Filter (from [Kak&Slaney])
48
8/10/2019 CT Ch6 Part1
49/58
F14 Yao Wang @ NYU
Common Filters
Ram-Lak: using the rectangular window
Tend to amplify noise
Shepp-Logan: using a sinc window
Cosine: using a cosine window
Hamming: using a generalized Hamming window
See Fig. B.5 in A. Webb, Introduction to biomedicalimaging
49
8/10/2019 CT Ch6 Part1
50/58
F14 Yao Wang @ NYU
Practical Implementation
Projectionsg(l, !)are only measured at finite intervals
l=n#; #chosen based on maximum frequency in G(",!), W
1/#>=2W or #
8/10/2019 CT Ch6 Part1
51/58
F14 Yao Wang @ NYU
Matlab Implementation
MATLAB (image toolbox) has several built-in functions:
phantom: create phantom images of size NxNI = PHANTOM(DEF,N) DEF=Shepp-Logan,Modified Shepp-Logan
Can also construct your own phantom, or use an arbitrary image
radon: generate projection data from a phantom
Can specify sampling of !R = RADON(I,THETA)
The number of samples per projection angle = sqrt(2) N
iradon: reconstruct an image from measured projections
Uses the filtered backprojection method
Can choose different filters and different interpolation methods forperforming backprojection
[I,H]=IRADON(R,THETA,INTERPOLATION,FILTER,FREQUENCY_SCALING,OUTPUT_SIZE)
Use help radonetc. to learn the specifics
Other useful command:
imshow, imagesc, colormap
51
8/10/2019 CT Ch6 Part1
52/58
Use MATLAB to illustrate projection and reconstruction
using different parameter settings
More vs. less projection angles
Different filters
I=phantom(def,N),
DEF='Shepp-Logan, 'Modified Shepp-Logan (default)
R = RADON(I,THETA), e.g. THETA=0:179 or 0:2:179
I = IRADON(R,THETA,INTERPOLATION,FILTER)
Interpoltation filters: used for backprojection
'nearest' - nearest neighbor interpolation,
'linear' - linear interpolation (default),
'spline' - spline interpolation
Reconstruction filter: Ram-Lak (default), 'Shepp-Logan, 'Cosine
F14 Yao Wang @ NYU 52
8/10/2019 CT Ch6 Part1
53/58
F14 Yao Wang @ NYU 53
Top: 180 projectionsMiddle: 90 projections
Bottom: 45 projections
MATLAB code:
>> I=imread('lena.jpg');>> r180=radon(I,0:179); % 0:2:179;
>> p180=iradon(r180,0:179,spline,cosine);>> subplot(1,3,1),imagesc(I);
>> subplot(1,3,2),imagesc(r180);
>> subplot(1,3,3),imagesc(p180);
>> truesize>> colormap(gray)
S
8/10/2019 CT Ch6 Part1
54/58
F14 Yao Wang @ NYU
Summary
Different generations of CT machines:
Difference and pros and cons of each
X-ray source and detector design
Require (close-to) monogenic x-ray source
Relation between detector reading and absorption properties of theimaged slice
Line integral of absorption coefficients (Radon transform)
Reconstruction methods
Backprojection summation
Fourier method (projection slice theorem)
Filtered backprojection
Convolution backprojection
Impact of number of projection angles on reconstruction imagequality
Matlab implementations
Equivalent, but differ in
computation
54
R f
8/10/2019 CT Ch6 Part1
55/58
F14 Yao Wang @ NYU
Reference
Prince and Links, Medical Imaging Signals and Systems,Chap 6.
Webb, Introduction to biomedical imaging, Appendix B.
Kak and Slanley, Principles of Computerized
Tomographic Imaging, IEEE Press, 1988. Chap. 3
Electronic copy available at
http://www.slaney.org/pct/pct-toc.html
Good description of different generations of CTmachines
http://www.kau.edu.sa/Files/0008512/Files/19500_2nd_presentation_final.pdf
http://bme.ccny.cuny.edu/faculty/parra/teaching/med-imaging/
lecture4.pdf
55
H k
8/10/2019 CT Ch6 Part1
56/58
F14 Yao Wang @ NYU
Homework
Reading:
Prince and Links, Medical Imaging Signals and Systems,Chap6, Sec.6.1-6.3.3
Note down all the corrections for Ch. 6 on your copy ofthe textbook based on the provided errata.
Problems for Chap 6 of the text book:
1. P6.5
2. P6.14 (Note that you can leave the solution of part (a) in theform of the convolution of two functions without deriving theactual convolution. For part (b) you could describe in terms ofintuition.)
3. P6.17
4. The added problem in the following page
56
8/10/2019 CT Ch6 Part1
57/58
Added problem
Consider a 4x4 discrete image that contains a diagonal lineI=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1];
a) determine its projections in the directions: 0, 45,90,135 degrees.
b) determine the backprojected image from each projection;
c) determine the reconstructed images by using projections in the 0 and 90degrees only.
d) determine the reconstructed images by using all projections. Comment onthe difference from c).
Note that for back-projection, you should normalize the backprojection ineach direction based on the total length of projection along that direction inthe square area.
F14 Yao Wang @ NYU 57
Computer Assignment
8/10/2019 CT Ch6 Part1
58/58
Computer AssignmentDue: Two weeks from lecture date
1. Learn how do phantom.radon,iradonwork; summarize theirfunctionalities. Type demoson the command line, then select toolbox -
> image processing -> transform -> reconstructing an image fromprojection data. Alternatively, you can use helpfor each particularfunction.
2. Write a MATLAB program that 1) generate a phantom image (you can usea standard phantom provided by MATLAB or construct your own), 2)produce projections in a specified number of angle, 3) reconstruct the
phantom using backprojection summation; Your program should allow theuser to specify the number of projection angle. Run your program withdifferent number of projections for the same view angle, and the differentview angles, and compare the quality. You should NOT use the radon( )and iradon()function in MATLAB.
3. Repeat 1 but uses filter backprojection method for step 3). In addition to
the number of projection angles, you should be able to specify the filteramong several filters provided by Matlab and the interpolation filters usedfor backprojection. Compare the reconstructed image quality obtained withdifferent filters and interpolation methods for the same view angle andnumber of projections. You can use the iradon()function in MATLAB
4. (Optional) Repeat 3 but uses convolution backprojection method. Youhave to do your own program