$34.99
Instructions
Please show your solutions to each problem in full, writing them neatly. For computer programs, please remember to turn in your code through the course's blackboard session, as well as any plots / figures that are requested
Working with 3D k-space data and visualizing the same.
Reconstructing k-space in 3D using a Fourier Transform and Rendering the results in paraview / VTK. Effects of sampling k-space in vanous ways, on the reconstructed image equivalent.
Projections and K-Space:
K-space data of Image Projections.
Radon Space v/s K-space and the Fourier Transform.
(SO points) Koay et al 2007 presented a method of generating a 2D and a 3D analytical MRI phantom in the Fourier domain which was modeled based on the Shepp-Logan 1974 head phantom. This phantom consists of several ellipsoids of different sizes, orientations, locations, and signal intensities (i.e. gray levels). The uniqueness of thlS phantom IS that it's k-space signal can be analytically expressed. Attached with this assignment is the 3D complex k- Space of the 3D Koay phantom, as a .MAT file.
. Write a Matlab script to read the Phantoms k-space data into the Matlab workspace and compute the image-space version of the k-space data (after appropriate Fourier-transform reconstruction activities). Visualize the 3D image space equivalent of this k-space data, 13, in a z-slice having the index given by / 2.3), in Matlab. In
b.
your reports, please insert screenshots of your results along with the steps taken to reconstruct the image data in each case, with the code.
Recall that we learned how to plot a matrix of complex numbers
as an image by take the absolute value of the numbers. Plot the "real" and "imaginary" components of your reconstructed image results for the
2D and 3D (z-slice at 1, /2.31 )cases and compare the results against the absolute value image Insert plots and describe your observations.
Next, visualize the 3D image space version of the Phantom data in ITK-
SNAP (based the
Insight
Tool-Kit
(ITK),
www.itksnap.orq/docs/viewtutorial.DhD?) or Paraview (based on the Visualiation Tool-Kit (WK), www.kitware.com) — both the open source image visualization GUIs which you used in your previous assignments. In order to do this you will require to "write out" the VTK Volume file of your 3D phantom result. Please insert snapshots of any one slice through the image volume from each, ITK-SNAP and Paraview (using the "slice" filter), in your reports.
HINT: Consider spacing to be [1,1,1] while writing the file if you use "all" of the k-space data for reconstruction.
Starter code to write VTK Volume Image is available from Assignment 1 and 2: write_vtk_Vo/ume .
2. (SO points) Repeat the steps in Question 1 part (a) and (b) for the 3D k- space reconstructions this time using the following "sub-sets" of k-space and visualize your results in Paraview for each case, paying attention to the change in "Spacing" between voxels expected in each case (if any) before you write out your VTK volumes for visualization : Ikspac:esmgnal squeeze
iii)
Note ; "squeeze" is a function in Mat lab (search in Mat lab help for it does! ) ard kspaeeSignäI is the 3D k—space of the Phantom
Please insert snapshots in your report of an "isocontour" of the 3D image volume resulting from each of the above cases viz. i, ii, iii, and iv. Why are the four results different..? Explain your observations for each case based on your understanding of k-space after first visually comparing each result with slices through the image volume reconstructed and visualized in (b), in Paraview. Insert screenshots to support your observations.
(50 points) Verify what 'back-projection' means by performing a
3.
'virtual CT scan': e in ceA1-5pace
' , 'crop' 1,-
a.
b.
(30 points) Start with the 2D k-space of the Shepp-Logan phantom from your K-Space Assignment to extract 'projection k-space lines' across the center Of k-space and populate a matrix r(k, :) where 'k' represents the rotational step number, starting from — to 00. The resulting 'r' matrix is the Fourier Transform of the 'sinogram' of image- space. Verify that your result makes sense by comparing the plots of the appropriately center-shifted inverse Fourier transform of your resulting matrix, 'M, against the sinogram generated from the Radon() function in Matlab (eg: R = applied onto the fully reconstructed image-space, I, of the phantom K-Space data. HINT: Instead of creating lines through k-space with different angles, you can rotate the k-space matrix and take lines through the center Of k-space as 'columns' each time you rotate it.
—u SO/ steps, , ) ;
(20 points) Next, fill the blanks and perform 'literal back-projection'
from your using the following function which does back-projection of each diagonal line through k-space, one by one. Try obtaining results
i) 50, ii) 100 and iii) 180 rotation steps for the CT scanner.
using: on_ (r s tepg) BACK e reca (length r a r x and add
* with dftterenr_ arg les r co, —180/ steps, ' bicublc
co, , 'cro
Insert representative plots / exercise and submit your code.
images of the reconstructed image for each
4.
5.
a.
b.
(20 points) Attempt to use the iRadon function in Matlab to recover the projections with a ramp filter. Display the reconstruction of f(x, y) using M = 5, M = 10, and M = 50 (in each case evenly distributed between [O, a]) projections in image-space, using a ramp-filter this time with the iRadon function in Matlab (see Matlab Help for the iRadon() Function'), to filter your back-projection to reduce the dominant effect of the center of k-space. Note how this is a different strategy than the method used in Q3! Please report screenshots of the k-space that you accumulate and the resulting images, in each case. Comment on the differences between the reconstructions using both filtered back projection and the unfiltered approach used in Q3. BONUS (10 points) In the case of using 10 projections only, how does the iRadon result improve if you linearly interpolate the projections in
Radon space by subdividing the sonogram 10 times before inverting the Radon transform..? Explain what you see in the resulting reconstructed image space.
Insert representative plots for each exercise and submit your code.
(20 points) Examining the effect of an artifact in a CT scan:
Add a rectangular region Of very high density (i .e. Bright region) to the center of the image i.e. a region of 40x40 pixels having intensity 100 times the mean intensity of the image, using code or interactively using an image editing application (eg: MS Paint). This rectangulr image region would represent the effect of a 'metal fragment' - a high-density region — in your imaged sample. Now, use the Radon() function to create sinograms using M = 50, M = 100, and M = 180 projections, and finally generate reconstructions of the Radon space for each case using the iRadon() function in Matlab. Report your observations regarding the effect of the circular artifact on your reconstruction results in each case, with supporting snapshots of your results. please submit your code, as well.
6.
BONUS POINTS (30 points) please go over the reading assignment PDF uploaded to Blackboard (uploaded within this Assignment #4
folder):
Moratal, David, et al "k-Spaæ tut01iaI: an MRI educational tool for a better understanding Of k-
Space." Biomedical 'magmg and intervention Journal 4 1 (2008).
Now attempt to write a Matlab code to replicate the example Of "low-pass" and "high-pass" filtering using the given 3D k-space Phantom, this time cropping a "sphere" from k-space Instead of a 2D circle to demonstrate the filtering process.
Please submit your code as well as a set of snapshots of your results as visualized in Paraview in slice-planes of your choice. Explain your observations based on your understanding of k-space.