1st Edition

Digital Image Processing with C++ Implementing Reference Algorithms with the CImg Library

    308 Pages 156 Color Illustrations
    by CRC Press

    308 Pages 156 Color Illustrations
    by CRC Press

    Digital Image Processing with C++: Implementing Reference Algorithms with the CImg Library presents the theory of digital image processing and implementations of algorithms using a dedicated library. Processing a digital image means transforming its content (denoising, stylizing, etc.), or extracting information to solve a given problem (object recognition, measurement, motion estimation, etc.). This book presents the mathematical theories underlying digital image processing, as well as their practical implementation through examples of algorithms implemented in the C++ language using the free and easy-to-use CImg library.

    Chapters cover the field of digital image processing in a broad way and propose practical and functional implementations of each method theoretically described. The main topics covered include filtering in spatial and frequency domains, mathematical morphology, feature extraction and applications to segmentation, motion estimation, multispectral image processing and 3D visualization.

    Students or developers wishing to discover or specialize in this discipline and teachers and researchers hoping to quickly prototype new algorithms or develop courses will all find in this book material to discover image processing or deepen their knowledge in this field.


    1. Introduction. 2. Getting Started With the CImg Library. 2.1 Objective: subdivide an image into blocks. 2.2 Setup and first program. 2.3 Computing the variations. 2.4 Computing the block decomposition. 2.5 Rendering of the decomposition. 2.6 Interactive visualization. 2.7 Final source code


    3. Point Processing Transformations. 3.1 Image operations. 3.2 Histogram operations. 4. Mathematical Morphology. 4.1 Binary images. 4.2 Gray-level images. 4.3 Some applications. 5. Filtering. 5.1 Spatial filtering. 5.2 Recursive filtering. 5.3 Frequency filtering. 5.4 Diffusion filtering. 6. Feature Extraction. 6.1 Points of interest. 6.2 Hough transform. 6.3 Texture features. 7. Segmentation. 7.1 Edge-based approaches. 7.2 Region-based approaches. 8. Motion Estimation. 8.1 Optical flow: dense motion estimation. 8.2 Sparse estimation. 9. Multispectral Approaches. 9.1 Dimension reduction. 9.2 Color imaging. 10. 3D Visualisation. 10.1 Structuring of 3D mesh objects. 10.2 3D plot of a function z = f (x;y). 10.3 Creating complex 3D objects. 10.4 Visualization of a cardiac segmentation in MRI. 11. And So Many Other Things. 11.1 Compression by transform (JPEG). 11.2 Tomographic reconstruction. 11.3 Stereovision. 11.4 Interactive deformation using RBF.

    List of CImg Codes.




    David Tschumperle is a permanent CNRS Research Scientist, heading the IMAGE team at the GREYC Laboratory, in Caen / France. He’s particularly interested in partial differential equations and variational methods for processing multi-valued images in a local or non-local way. He has authored more than 40 papers in journals or conferences and is the project leader of CImg and G'MIC, two open-source software/libraries.

    Christophe Tilmant is Associate Professor in Computer Science at Clermont-Auvergne University. His research activities include image processing, artificial intelligence, where he has authored more than 30 papers. His teaching includes deep learning, image processing and network security. He participates or leads several French research programs.

    Vincent Barra is a full Professor in Computer Science at Clermont-Auvergne University, and Associate Director of the LIMOS Lab. He teaches artificial intelligence and image processing in engineering schools and in master's programs. His research activities focus on n-dimensional data analysis, with methodological and application aspects in various fields. He has authored more than 90 papers in journal or conferences, and participates or leads several French and European research programs.