12: Image processing

Image processing is a computational process that transforms one or more input images into an output image. Image processing is frequently used to enhance an image for human viewing or interpretation, for example to improve contrast. Alternatively, and of more interest to robotics, it is the foundation for the process of feature extraction which will be discussed in much more detail in the next chapter.

An image is a rectangular array of picture elements (pixels) so we will use a Matlab matrix to represent an image in the workspace. This allows us to use Matlab’s powerful and efficient armoury of matrix operators and functions. The chapter covers:

  • Obtaining images from files and cameras
  • Obtaining image sequences from movie files and cameras
  • Monadic operations such as thresholding, gamma correction, normalization
  • Diadic operations such as arithmetic and chroma keying
  • Spatial operations such as smoothing, edge detection and template matching
  • Non-linear spatial operations such as rank filtering, mathematical morphology
  • Shape changing operations such as cropping, scaling, and warping