C++ Image Processing program
egami documentation

Warning: The support of anonymous namespaces is really bad in doxygen, some associations may appear incorrectly in graphs.


The program has been written in C++11, actually in the C++11 subset implemented in gcc 4.6.1, an older version of gcc may not be able to compile it. The build tool used is cmake, which allows out of source build. The graphical user interface library is Gtkmm, a C++ wrapper of Gtk+.

In order to build the project with cmake, type
cmake path/to/the/project
and then
make install
If you don't want to install the project in the default installation directory (that is /usr or /usr/local) or if you want to change others options, you should run ccmake . before running make install.

Basic structure

The most interresting parts for this coursework are in the Processes subdirectory. For each .cpp file, there is an associated function in the namespace Processes which register the process. The process itself is a function taking an const Image_unit* (often named in) and returning an Display_unit* (often named out). This function is often named impl and in an anonymous namespace.

Some files in the Processes subdirectory are special, they do not register a process, they are just used a lot by other processes. Those files are: order_statistic, convolution, binary.

When an user input is needed (in order to know a parameter for the algorithm for example), a dialog is displayed. By convention, I am always naming this dialog Config (in different anonymous namespaces). It is not important to read this part of the code to understand the implemented function. impl ofter regroup all the high level logic.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends