This is the SPDEIPTK (Small PDE Image Processing ToolKit). It has been written by Olivier Rousseau in 2005-2009 during his PhD project. It is a small set of classes and functions that are intended to be used mainly for PDE methods in image processing, but not restricted to this.
The main interesting feature of the code is that it may process large 3D images in parallel. For most parallelizable image processing algorithm, the algorithm can be written in standard form, and called by a parallel code in an almost transparent way.
This toolkit is to be used for RESEARCH PURPOSES. It is not for developpment purpose. There is absolutely no garanty of it being bugfree. There exists toolkits far more complete and stable. Let me cite the excellent ITK (Insight Toolkit).
There are several reasons why I did not use the ITK for my research. Programming efficient filters in ITK is an art. Hard coding algorithms within the ITK framework is easy, but it leads to slow algorithms. A simple C++ implementation can increase the speed by a factor of 1 to 5 depending on the algorithm. The other main reason is that ITK does not have parallel capabilities.
My hope is that it this set of code could be useful for someone testing image processing algorithms by providing a simple serial and parallel code set.
The input and output format available can easily be created or viewed by the great (and free!) visualization software paraview. (www.paraview.org)
In this Toolkit, there are 4 main classes:
The code included in the main 4 classes should be (almost) bug free as it has been used intensively for a while now. However the sample codes may have a higher bug rate. Hopefully they are small bugs.
-------- INSTALL PROCEDURES --------
The toolkit is all in "spdeiptk_1.1.tar.gz". The main directory is "spdeiptk". The main classes are defined in ".h" files that are located in "spdeiptk/lib/". They can be used as is. To compile the sample code, you should set a variable SPDEIPTK to the spdeiptk directory. For example, you can add
export SPDEIPTK = spdeiptk_dir
to your .bashrc file. Now typing "make" from the spdeiptk_dir should compile everything. It may take a few minutes. In order to compile everything, you need the g++ compiler as well as the parallel compiler mpic++. Hence you need to have a parallel computing libraries. If you don't want to use parallel computing, just erase the directories 3D/P... from the makefile in spdeiptk_dir.
If you want to install parallel librairies, I suggest openmpi. It can be installed easily on most linux systems (for example with Synaptic in Ubuntu). It is also very easy to compile if you prefer to download the source code from ther website.
The parallel code can be used on a cluster, or simply on a simple dual core processor. Just this will speed most calculations by a factor of 2.
Comments and suggestions are welcome, although there is no garanty that I will have the time to maintain and upgrade the code...
-------- GET THE CODE --------
It is here: spdeiptk_1.1.zip