Book Image

Hands-On Image Processing with Python

By : Sandipan Dey
Book Image

Hands-On Image Processing with Python

By: Sandipan Dey

Overview of this book

Image processing plays an important role in our daily lives with various applications such as in social media (face detection), medical imaging (X-ray, CT-scan), security (fingerprint recognition) to robotics & space. This book will touch the core of image processing, from concepts to code using Python. The book will start from the classical image processing techniques and explore the evolution of image processing algorithms up to the recent advances in image processing or computer vision with deep learning. We will learn how to use image processing libraries such as PIL, scikit-mage, and scipy ndimage in Python. This book will enable us to write code snippets in Python 3 and quickly implement complex image processing algorithms such as image enhancement, filtering, segmentation, object detection, and classification. We will be able to use machine learning models using the scikit-learn library and later explore deep CNN, such as VGG-19 with Keras, and we will also use an end-to-end deep learning model called YOLO for object detection. We will also cover a few advanced problems, such as image inpainting, gradient blending, variational denoising, seam carving, quilting, and morphing. By the end of this book, we will have learned to implement various algorithms for efficient image processing.
Table of Contents (20 chapters)
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Preface
Index

The image processing pipeline


The following steps describe the basic steps in the image processing pipeline:

  1. Acquisition and storage: The image needs to be captured (using a camera, for example) and stored on some device (such as a hard disk) as a file (for example, a JPEG file). 
  2. Load into memory and save to disk: The image needs to be read from the disk into memory and stored using some data structure (for example, numpy ndarray), and the data structure needs to be serialized into an image file later, possibly after running some algorithms on the image.
  3. Manipulation, enhancement, and restoration: We need to run some pre-processingalgorithmsto do the following:
    • Run a few transformations on the image (sampling and manipulation; for example, grayscale conversion)
    • Enhance the quality of the image (filtering; for example, deblurring)
    • Restore the image from noise degradation
  4. Segmentation: The image needs to be segmented in order to extract the objects of interest.
  5. Information extraction/representation: The image needs to be represented in some alternative form; for example, one of the following:
    • Some hand-crafted feature-descriptor can be computed (for example, HOG descriptors, with classical image processing) from the image
    • Some features can be automatically learned from the image (for example, the weights and bias values learned in the hidden layers of a neural net with deep learning)
    • The image is going to be represented using that alternative representation 
  1. Image understanding/interpretationThis representation will be used to understand the image better with the following:
    • Image classification (for example, whether an image contains a human object or not)
    • Object recognition (for examplefinding the location of the car objects in an image with a bounding box)

The following diagram describes the different steps in image processing:

The next figure represents different modules that we are going to use for different image processing tasks:

Apart from these libraries, we are going to use the following:

  • scipy.ndimageandopencvfor different image processing tasks
  • scikit-learn for classical machine learning
  • tensorflow and keras for deep learning