Marc Johannes
EN292
Medical Imaging
Laboratory 2


Also available at: http://www.lems.brown.edu/~msj/cs292/assign1/ct.html
 


Computer Tomography


Introduction:  Exploration of a technique to construct and enhance an image from tomographical data using Ram-Lak and Shepp-Logan filters and backprojection of the Radon transform.  The technique demonstrates fundamental ideas exploited by the medical community in the area of X-Ray technology and computer tomography.

Part I

See Matlab function imrotate()


Part II

Radon Transform

The Radon Tranform produces a series of 1D sum of intensity profiles from an image as it progresses through a series of rotations.  Rays of intensities are collected along a set coordinate frame (x,y) by summing the columns of the image as it undergoes rotation.  Below are plots of Radon Transform profiles collected from a synthetic image.  Rotation angles were introduced by starting at 0 degrees and progressing to 180 degrees by increments of 45 degrees.
 

Synthetic Image

Figure 1


Radon Tranform Profiles


 
Zero Degrees Rotation
45 Degrees Rotation
90 Degrees Rotation
135 Degrees Rotation
180 Degrees Rotation

Part III,IV


 


The following tables are organized as follows.  The first table consists of CT constructions of the synthetic image, the second of a real CT image.  Each image was constructed using 10 degree increments and 1 degree increments for three differenct filters; no filter, Ram-Lak filter and Shepp-Logan filter.
 

CT Constructions for Synthetic Image


 
Filter/Degrees 10 Degrees 1 Degree
None
Ram-Lak
Shepp-Logan

Real CT Image

512x512                                  128x128 sub-sampled
 
 
 

CT Constructions of real image


 
Filter/Degrees 10 Degrees 1 Degree
None
Ram-Lak
Shepp-Logan

Visual artifacts arise between the original sub-sampled image and the CT reconstruction.  The most notable being a distinct amount of blur.  A certain amount of detail gets smeared together in the process due to its inherently superpositive nature.  Note how the filtering goes a long way in bringing back some of the detail, specifically, in the striations and the internal structure of the 'nucleus'.
 
 

Matlab Code:

Main Function:  CTs.m

Calling Convention: CTs(image,start,increment,num,method,fltr)

Arguments -
image - The image to reconstruct.  (If image=0, phantom image will be constructed)
start - Starting rotation angle in degrees
increment - Number of degrees to increment for each rotation
num - Number of times to increment
method - 0
fltr - 0=No filter, 1=Ram-Lak filter, 2=Shepp-Logan filter

Example:  CTs(0,0,1,180,0,1)  Run CTs on the phantom image at every integer degree from 0 to 180 using the Ram-Lak filter.

Other Functions:
extractRays.m
backProject.m
footDist.m
buildImage.m
RamLak.m
SheppLogan.m
crop1D.m
Crop.m