From Image-Processing Algorithms to ImageJ Plugins: A Student-Friendly Framework
D. Sage, M. Unser
Workshop within the ImageJ User & Developer Conference (IUDC'12), Mondorf-les-Bains, Grand Duchy of Luxembourg, October 24-26, 2012.
We present a pedagogical tool to translate image-processing formulae and algorithms into Java programs that take the form of ImageJ plugins. The goal of the proposed computer framework is to complement lectures on image processing and to provide a didactic way to illustrate some mathematical concepts. It is our belief that it helps students to learn image processing by facilitating hands-on experimentation with real images.
The intended audience for this framework includes engineering and life-science students. Because their programming background is limited, we have designed the framework in such a way that its learning overhead is minimized. We have taken advantage of it to build a series of laboratory sessions of three hours each, where the students have to code basic image-processing routines in Java and access them as plugins of ImageJ. To help the students focus on image-processing aspects exclusively and to screen off the other issues, the graphical user interface and a template of the code is always provided to them.
In the workshop, we want to illustrate typical sessions by showing examples such as 1) operations to understand how to access the data pixelwise; 2) convolution with both a non-separable and a separable implementation of spatial digital filters; 3) directional image analysis by computing features related to the gradient structure tensor; 4) wavelet transform using the Haar filter; and 5) a direct and an iterative deconvolution scheme in the Fourier domain.
The framework is based on a package, called ImageAccess, which wraps a commodity layer around the ImageJ image objects. ImageAccess has high-level methods to read and write the pixel values of two-dimensional images, independently of their type. By restricting the other modes of data access, we encourage the students to handle images at the pixel level, and we stress that this is at the heart of many an image-processing algorithm. ImageAccess supports consistent mirror-symmetric boundary conditions to extend images beyond their defining array. This extension is transparent to the student, who will therefore never hit an "out-of-bounds" exception.
The overhead computational time of ImageAccess is negligible in our academic context. Moreover, the framework takes advantage of Eclipse features to ensure that the edition-compilation-execution cycle is short. Typically, auto-completion, documentation, and on-the-fly compilation are particularly helpful. The students can have a quick (almost instantaneous) visual feedback on their own image-processing routine. This is an appealing feature of our framework and reinforces the motivation of students to do well. Our ten-year experience at EPFL shows that this framework is well adapted to the teaching of image processing.
@INPROCEEDINGS(http://bigwww.epfl.ch/publications/sage1204.html, AUTHOR="Sage, D. and Unser, M.", TITLE="From Image-Processing Algorithms to {ImageJ} Plugins: {A} Student-Friendly Framework", BOOKTITLE="Workshop within the {ImageJ} User \& Developer Conference ({IUDC'12})", YEAR="2012", editor="", volume="", series="", pages="", address="Mondorf-les-Bains, Grand Duchy of Luxembourg", month="October 25-26,", organization="", publisher="", note="")