The CImg Library provides a minimal set of C++ classes that can be used to perform common operations on generic 2D or 3D images. It is simple-to-use, efficient, and portable. It's a really pleasant toolkit for developing image processing stuffs in C++. You can use it to load or save various file formats, access pixel values, display, transform, or filter images, draw primitives (text, faces, curves, and 3d objects), compute statistics, and manage user interactions on images. It defines a single image class which can represent datasets having up to 4-dimensions (from 1d scalar signals to 3d hyper spectral volumetric images), with template pixel types.