COSC 4372/6370 Algorithmic Medical Imaging
Assignment 1
Type: N/A
Deadline: See Instructors’Email
Do this assignment after reviewing the lecture material, then study and comprehend the basic
theory that follows below.
Theory: An imaging scanner has the purpose of generating an image of the structure of an
object. The image generation process of generic scanner may include the following steps
Part 1: Data or Image Collection
“Cut”the object in small pieces each corresponding to a voxel Vi,j,k
For each voxel Vi,j,k measure the signal intensity (SI) Si,j,k that originates from material of
the object contained in this voxel
Part 2: Image Reconstruction
Organize the Si,j,k so they correspond to known relative or absolute positions
Part 3: Image Visualization
Arrange the Si,j,k in assemblies and visualize them as 1D, 2D or 3D objects‘objects”, thee
are 1D, 2D or 3D images!
In modern imaging scanner, especially MRI scanners, the user can control (and program)
parameters and specifics in any of these three parts. We focus on the first two parts: how to
collect the data and how to reconstruct them and generate an image. A virtual scanner will be a
piece of code that when executed it generates an image based on:
The anatomy of the Virtual Object (this is the phantom)
The properties of the Virtual Object that relate to the particular imaging modality
How the data are collected and reconstructed (the Scanner Control Code)
The Scanner Control Code is a list of scanner-functions: when each scanner-function is
executed, it performs one of the fundamental tasks needed in the sequence of events to collect
and generate the image. In an actual scanner, scanner functions often control actual hardware:
RF power emitters, cotnrolelrs of magnetic field gradients, ADC parameters etc.
Our first scanner-functions will be
Select_OneVoxel() can select a voxel (i.e. a tiny cube) from inside the object
Acquire_Signal_OnePoint() it acquires the signal from a single point in space
Scanner Control Code A:
Let’s now put together a first version of the Scanner Control Code to acquire a 2D image with
size N1xN2. This image will be generated by collecting the signal from N1xN2 voxels that
belong to the same slice!
/ Algorithm to acquire a slice /
For I = 1 to N1
For j = 1 to N2
Select_OneVoxel()
Acquire_Signal_OnePoint()
Next N2
Next N1
COSC 4372/6370 Algorithmic Medical Imaging
Prof. Nikolaos V Tsekos
Task1
Update the above Scanner Control Code A
(a) What should be the arguments for functions:
Select_OneVoxel() and Acquire_Signal_OnePoint()?
(b) Based on your answer to 1(a), what other pieces of code (well lines …) you should add to
comlwte thae code so that all arguments are known (and passed) to the functions?
Let’s call the updated code as Scanner Control Code B
Task 2
Modify the updated Scanner Control Code B (from Task 1), to scan a 3D using the line-scan.
In case you were not able to perform Task 1, for partial credit you can do the same to the
original Scanner Control Code A
To perform Tasks 3 and 4 refer to text starting below in page 3 of this document
Task 3
Modify Control Code B to collect an YZ slice. Hint: Consider the assignment of indices in the
table in page 3.
For this particular algorithm, how do you determine where is the slice?
Task 4
Assume you want to collect a multislice set that is composed of 3 slices on XY that are parallel
to XY and along axis Z (Figure 3). Re-write algorithm 2 to perform this task
COSC 4372/6370 Algorithmic Medical Imaging
Prof. Nikolaos V Tsekos
Additional Info about Tasks 3 and 4
Axis & index Finding the Axes Using your
Right Hand
Axis 1 or X i First or index finger
Axis 2 Y j Second finger
Axis 3 Z k Thumb
WX:codehelp