Image Component Library (ICL)
Other Classes

Overview

The ICLFilter package provides a large variety of image filtering classes. Here's is an incomplete list:

When talking about image filters some misapprehensions can arise. To prevent this, the following section will shortly introduce our understanding of image filters.

filter-array-demo.png
The icl-filter-array demo application can be used to examine filter chains

What are Image-Filters

In a most general view on image filters, a filter is a black box that has N image inputs and M image outputs. However this approach provides a very generic interface for image filters, this interface is not very feasible. Most common filters (e.g. binary image operations, linear filters or neighborhood operations) only need a single input and output image. Another larger group are filters with two input and on output images (e.g. arithmetical/logical per-pixel image operations or image comparison filters).
To avoid a large computational overhead arising of a too general interface, we support two dedicated filtering interfaces for the above mentioned 1-1 and 2-1 input-output combinations. To obviate further misunderstandings, we call this filter sets Unary Operations and Binary-Operations - or short UnaryOp and BinaryOp.
Each of this sets is represented by a equal named C++-class-interface, which is inherited by all implemented filters that have a corresponding input-output relation (from now on we use Ops(for operations).
For a better overview, the ICLFilter package is grouped into some modules:

  1. Collection of Unary Operations
  2. Collection of Binary Operations
  3. Collection of Affine Image Operations
  4. Collection of Neighborhood Operations
  5. Collection of Inplace Operations
  6. Other Classes