The 'Class Library for Image Processing' (CLIP) provides object-oriented programming facilities in a framework that supports user migration from C. CLIP augments the C/C++ built-in types with just three additions: the picture, the integer range, and the value range. Associated with these are overloaded operators for arithmetic on and between the types. Range limiting is implemented as a modification of conventional indexing. Pel-by-pel and block-by-block iterations are conveniently handled within the picture and range objects, and via callbacks. Each type incorporates error handling. The target users for CLIP will accept object-orientation only it if allows them to save on development time, after minimal learning, without compromising program execution speed. CLIP programs are compact, the required knowledge of C++ is elementary, and the class library's public interface is small. Speed is kept high by minimizing the amount of data in temporary objects, reducing the dynamic memory management overhead. Picture- or block-wide operations and callbacks are efficiently supported by ordering iterations to minimize the number of counter and pointer increments.
John A. Robinson,
"C++ class library for teaching and research in image processing", Proc. SPIE 2663, Very High Resolution and Quality Imaging, (16 February 1996); doi: 10.1117/12.233034; https://doi.org/10.1117/12.233034