11: 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
- Dyadic 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
General
- Image file formats
- Independent JPEG group
- Lenna
- History of the Sobel operator, Irwin Sobel
- Sobel operator (Wikipedia)
Image sources
- McKeldin Mall, University of Maryland: a live Axis camera, usable with AxisWebCamera
- Opentopia, list a huge number of webcams. The actual URL for the camera is listed below the image on the line marked Website:. The the root part of the URL (before the first single slash) is required for the AxisWebCamera class
- CAVIAR, motion sequence data base
Open-source books
- Computer Vision: Algorithms and Applications, by Richard Szeliski
Other open-source software
- Matlab Central file exchange, functions in the image and video processing category
- Peter Kovesi’s, software for Computer Vision and Image processing
- ImageMagick, cross platform (Unix, MacOS, Windows, iPhone) tools for image manipulation. Command line and GUI
- NetPBM, portable library for image manipulation, defines its own simple file formats (PBM, PGM, PPM, PNM) and an extensive range of filters from common formats to/from P*M formats
- OpenCV, large C-based library of computer vision functions
- VXL, large C++-based library of computer vision functions
These links are kept in one place for every edition and checked monthly. Resources for every chapter.
