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
![]() |
![]() |
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