CS6825: Computer Vision word cloud

Image Data Structures

(parts adapted from http://www.icaen.uiowa.edu)
When writting applications involving images, many kinds of data structures can be used and the choice can greatly influence what you can do with an image in your program. Below are some of the commonly used data structures relating to images.

Image Representations

  1. Image Array Data - consists of images containing original data; integer matrices with data about pixel brightness.
    • E.g., outputs of pre-processing operations (e.g., filtration or edge sharpening) used for highlighting some aspects of the image important for further treatment.
  2. Segmented images - parts of the image are joined into groups that probably belong to the same objects.
    • It is useful to know something about the application domain while doing image segmentation; it is then easier to deal with noise and other problems associated with erroneous image data.
  3. Geometric representations - hold knowledge about 2D and 3D shapes.
    • The quantification of a shape is very difficult but very important.
  4. Relational models - give the ability to treat data more efficiently and at a higher level of abstraction.
    • A priori knowledge about the case being solved is usually used in processing of this kind.
    • Example - counting planes standing at an airport using satellite images
    • A priori knowledge
      • position of the airport (e.g., from a map)
      • relations to other objects in the image ( e.g., to roads, lakes, urban areas)
      • geometric models of planes for which we are searching
      • etc.




Traditional image data structures


Matrices Sound

  • Most common data structure for low level image representation Elements of the matrix are integer numbers
  • Image data of this kind are usually the direct output of the image capturing device, e.g., a scanner.

Chains Sound

  • Chains are used for description of object borders
  • Symbols in a chain usually correspond to the neighborhood of primitives in the image.




If local information is needed from the chain code, it is necessary to search through the whole chain systematically.
  • Does the border turn somewhere to the left by 90 degrees?
  • A sample pair of symbols in the chain must be found - simple.
If global information is needed, situation is much more difficult.
  • Questions about the shape of the border represented by chain codes are not trivial.
Chains can be represented using static data structures (e.g., 1D arrays); their size is the longest length of the chain expected.
  • Dynamic data structures are more advantageous to save memory.

Run length coding

  • often used to represent strings of symbols in an image matrix (e.g., FAX machines use it).
  • In binary images, run length coding records only areas that belong to the object in the image; the area is then represented as a list of lists.
  • Each row of the image is described by a sublist, the first element of which is the row number.
  • Subsequent terms are co-ordinate pairs; the first element of a pair is the beginning of a run and the second is the end.
  • There can be several such sequences in the row.

  • Run length coding can be used for an image with multiple brightness levels as well - in the sublist, sequence brightness must also be recorded.


Topological data structures Sound

  • Image description as a set of elements and their relations.
  • Graphs
  • Evaluated graphs
  • Region adjacency graphs






Relational structures

  • information is then concentrated in relations between semantically important parts of the image - objects - that are the result of segmentation
  • Appropriate for higher level image understanding







Hierarchical data structures
Sound

  • Computer vision is by its nature very computationally expensive, if for no other reason than the amount of data to be processed.
  • One of the solutions is using parallel computers = brute force
  • Many computer vision problems are difficult to divide among processors, or decompose in any way.
  • Hierarchical data structures make it possible to use algorithms which decide a strategy for processing on the basis of relatively small quantities of data.
  • They work at the finest resolution only with those parts of the image for which it is necessary, using knowledge instead of brute force to ease and speed up the processing.
  • More info
  • Two typical structures - pyramids and quadtrees.

Pyramids

  • M-pyramid - Matrix pyramid ... is a sequence {ML, ML-1, ..., M0} of images
  • ML has the same dimensions and elements as the original image
  • Mi-1 is derived from the Mi by reducing the resolution by one half.
  • Square matrices with dimensions equal to powers of two required - M0 corresponds to one pixel only.
  • M-pyramids are used when it is necessary to work with an image at different resolutions simultaneously.
  • An image having one degree smaller resolution in a pyramid contains four times less data, so that it is processed approximately four times as quickly.
  • Often it is advantageous to use several resolutions simultaneously rather than to choose just one image from the M-pyramid.
  • Such images can be represented using tree pyramids ... T-pyramids.
  • T-pyramid is a tree, every node of the T-pyramid has 4 child nodes.





  • The number of image pixels used by an M-pyramid for storing all matrices is





  • The T-pyramid is represented in memory similarly.
  • Arcs of the tree need not be recorded because addresses of the both child and parent nodes are easy to compute due to the regularity of the structure. An algorithm for the effective creation


Quadtrees

  • Quadtrees are modifications of T-pyramids.
  • Every node of the tree except the leaves has four children (NW: north-western, NE: north-eastern, SW: south-western, SE: south-eastern).
  • Similarly to T-pyramids, the image is divided into four quadrants at each hierarchical level, however it is not necessary to keep nodes at all levels.
  • If a parent node has four children of the same value (e.g., brightness), it is not necessary to record them.





  • Problems associated with hierarchical image representation:
    • Dependence on the position, orientation and relative size of objects.
    • Two similar images with just very small differences can have very different pyramid or quadtree representations.
    • Even two images depicting the same, slightly shifted scene, can haveentirely different representations.
© Lynne Grewe