Population
Image processing library in C++
Classes

Matrix In -> Matrix Out (threshold operators, morphological operators, gradient, edge detectors, region growing,...) More...

Classes

struct  pop::Processing
 

Detailed Description

Matrix In -> Matrix Out (threshold operators, morphological operators, gradient, edge detectors, region growing,...)

Processing refers to a data-process where input and output are matrixs. We classify the algorithms in how the operator act. Concerning the application of these algorithms, you can read the segmentation tutorials.

Generator

The output matrix h is defined as follows, h(x) = H(), where g is the generating function. For H() = c, we fill the input matrix with a constant value and for H()=X with X independent and identically distributed random variables following the probability distribution $\mathcal{P}$, we generate an homgeneous random field.

Point

In Point algorithm, we iterate globally a process on the Points of the matrixs, e.g. the threshold operator. The complexity is linear with the number of pixels/voxels.

Iterared over all points on a neighborhood of a point

In neightborhood algorithm, the iteration is twofold: globally and locally (see Neighborhood). In each Point of the global iteration, we iterate a local iteration. The computational time is proportionnel to the radius power the dimension multiply by the number of pixels/voxels. The radius is the characteristic size of the local iteration.

Erosion.gif
iterative Point process

Convolution

In convolution algorithm as neightborhood algorithm, the iteration is twofold: globally and locally (see Convolution) except that we keep the local position in the local iteration.

Recursive

A recursive algorithm uses one or more of its outputs as an input at each step (see Recursive).

Region Growing

Many fields in computer science, stereovision mathematical morphology, use algorithm which principle is Region Growing. This method consists in initializing each region with a seed and then iterate pixel by pixel growth controlling by a metric until convergence. A large literature is dedicated to the definition of the metric divided into two distinct categories: the object feature like the tint and the object boundary discontinuity. The implementation of each algorithm can be daunting since many data-structures should interact in the algorithm. To overcome that, I introduced a conceptual framework with a modern architecture design for the localization and the organization of the growing process. The following video shows the growing process for the watershed algorithm on the topographic surface defined by the gradient magnitude of the original matrix :

Lenawater.gif