next_inactive up previous


CS6640 -- Project 3
Assigned Sept 30, 2013
Due October 21 (Midnight)

A PDF version of this assignment is here.

Goals

The purpose of this assignment is to learn about image transformations (warping) using radial basis functions and apply this to the construction of digitial atlases and image morphing. Please read following instructions carefully.

Assignment

  1. You are to build a Matlab/C++ function that is executed as follows:
    morph(parameter-file-name)
    where parameter-file-name is of type string, and it specifies a file of parameters that will be read. Also an example of the particular type of files your program should read is given here. The parameter file specifies image files and control points. It also specifies the name of the output file. The output file MORPH_FILE_OUTPUT is a string used as a base name for a sequence of files that are numbered to represent the morph. Your program should properly read a file like this and properly use the parameter. You can find an example of a parameter file (for Matlab) here, and some tiff images that go with this parameter file here.. If you plan to use Vispack/C++, use the the code and file format discussed for atlases, below.
  2. You are to build a Matlab/C++ function that is executed as follows:
    atlas(parameter-file-name)
    where parameter-file-name is of type string, and it specifies a file of parameters that will be read. Also an example of the particular type of files your program should read is given here. The parameter file specifies image files and control points. It also specifies the name of the output file. The output file ATLAS_FILE_OUTPUT is an image that shows the average atlas. Your program should properly read a file like this and properly use the parameter. If you plan to use Vispack/C++, there is code available to read a parameter file and for warping images. Start with the README in here.

Grading and Report

To get a good grade, your report should show that you have experimented with the registration algorithm, analyzed its behavior, etc. Your report should explicitly answer all indicated with underlines. You should also build your algorithm to handle some tricky details that are not specified.

Experiments

For the morping, find several example of interesting pairs of images and present the morph for those pairs with different correspondence strategies.

For the atlas part, test and experiment with your application on the example given in atlastest, and build your own atlas from the data given in atlasdata. You should also construct one or more atlases from your own data using pictures of common things. E.g. an atlas of faces, hands, or cars. Be creative. Use a camera if you need to. Takes pictures of hands or shoes or cars or whatever you can think of where you can construct and group to make an ``average'' or ``atlas''.

Questions

Details

To the extent that your algorithm handles these details in a good way, it will improve your grade.
Warping: You should implement a radial basis function warping routine. You should have options for compact kernels (such as the Gaussian) and thin-plate-spline basis functions. I strongly suggest that you implement the determination of the basis coefficients and the application of the warp as separate functions, and debug each of these functions independently with simple examples.
Contrast: A good algorithm should automatically adjust for major intensity differences. E.g. rescaling and histogram matching.
Image size: A good algorithm should should produce an output image that is a good size and shape to display all of the images.
Atlas Example: A set of input brain data images are given in atlasexample. You should present results with this data as well as (nonbrain) data of your own.

Hints

Sizing Outputs: In order to figure out the size and extent needed for the output, you can look at where the corners of an image map. The image maps to a quadrilateral defined by these four points.
Atlas Translation and Scaling: You should find the optimal transformations in this regard, apply it to the points, and then rerun the TPSs. When you do the warp you will have to cascade the resulting transformations. The displacements will all be computed on data after it has undergone this linear transformation. You can get these parameters from the linear part of the TPS deformation. The constants give translation. This is not necessary for the morphing.
Anatomy Resources: As best as possible you should choose landmarks and discuss results using some basic brain anatomy. You can find some references on-line: Utah Medlib Tutorial/Atlas, Labelled Coronal Slice, Other Brain Atlases.

About this document ...

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 project3b.tex

The translation was initiated by Ross Whitaker on 2013-09-29


next_inactive up previous
Ross Whitaker 2013-09-29