Introduction to Programming for Image Analysis with VTK
Provides an introduction for an engineering graduate student with some background in programming in C and C++ to utilize modern toolkits in medical image analysis and visualization such as Visualization Toolkit and, to a lesser extent, Insight Toolkit.
Tag(s): Computer Vision
Publication date: 01 Dec 2006
ISBN-10: n/a
ISBN-13: n/a
Paperback: n/a
Views: 19,199
Type: N/A
Publisher: n/a
License: n/a
Post time: 11 Apr 2008 11:40:42
Introduction to Programming for Image Analysis with VTK
Xenophon Papademetris wrote:This book is an edited collection of class handouts that I wrote for the graduate seminar "Programming for Medical Image Analysis" that was taught at Yale University, Department of Biomedical Engineering, in the Fall of 2006. My goal for the class was to provide sufficient introductory material for a typical 1st year engineering graduate student with some background in programming in C and C++ to acquire the skills to leverage modern open source toolkits in medical image analysis and visualization such as the Visualization Toolkit (VTK) and, to a lesser extent, the Insight Toolkit (ITK).
Most of our graduate students – the intended audience for this book and class – while having a strong applied mathematics/signal processing background, are not expert programmers. Frequently, they would have had some programming classes at the undergraduate level and would have been, most likely, exposed to C/C++ at some point. However, with rare exceptions, a dive into the combination of object-oriented and generic programming model used in ITK, for instance, would leave most of them befuddled.
Such students begin their graduate research in semester long projects called "special investigations". This is part of the process of identifying a topic for their research as well as a lab in which they will pursue their dissertation work. In our own research in medical image analysis, the typical product of a doctoral dissertation is a mathematical framework for attacking an image analysis problem which has to be translated into computer code for testing and validation.
Most of the students, in these special investigations, prototype ideas in MATLAB. While MATLAB is a wonderful prototyping tool, it leaves much to be desired in terms of the development of the programming habits needed to write a large, sustainable, and reusable body of code. Unfortunately, many students ending up in the trap of developing the best algorithms that can be implemented in MATLAB as opposed to focusing on what on optimal algorithmic strategy would be. This is especially apparent once large 3D and 4D datasets enter into the picture, and their algorithms end up taking hours and days to run.
At this point in the game, a helpful professor suggests that they should probably look to move to a more efficient language such as C++. However, one look at straight C++ without any of the additional toolkits, makes them realize that switching to C++ is easier said than done. There are very few default operations for things like linear algebra, image processing, image display etc. Then, perhaps, another helpful person suggests that they take a look at VTK and/or ITK. While now, they can see that there is a ton of functionality out there, they are often lost as to where to begin. VTK and ITK are natural tools once one is used to them but they can be imposing and "scary" to the beginner. While there are some books out there (especially the VTK User’s Guide) which are very helpful, they are often only obliquely related to what they really need to learn how to do: implement image analysis methods, learn how to (properly) display their results, and learn how to put a graphical user interface to enable them and their potential users to interact with the methods. The goal of the course, and this book, is to precisely provide the necessary guidance for a new graduate student in order to achieve these goals.
About The Author(s)
No information is available for this author.
No information is available for this author.