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
- 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.
- 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.
- Geometric representations - hold knowledge about 2D and 3D shapes.
- The quantification of a shape is very difficult but very important.
- 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
- 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
- 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
- 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
- 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.
|