Wolfram Computation Meets Knowledge

What image coordinate systems does the Wolfram Language use?

There are two common coordinate systems used in the field of image processing and analysis: the matrix coordinate system and the graphics coordinate system. They differ in how the locations of pixels are expressed. 

Matrix or index coordinates

The matrix coordinate space reflects the data matrix stored in the image. The matrix is stored in rows of columns of pixel values. Therefore, pixel locations are the same as their corresponding row and column in the data matrix, where rows run from top to bottom and columns run from left to right.

Pixels are therefore identified by integer coordinates, row number first. Coordinates {5,6} identify the red pixel in the image below. The x direction is down, and the y direction is across.

pixel above eye has integer coordinates.

In the Wolfram Language, functions that operate on both images and data arrays adhere to the matrix coordinate system. Examples include GaussianFilter, ImageConvolve and ImageData.

Image or graphics coordinates

The origin of the image or graphics coordinate system is the bottom-left corner of an image. The x coordinate extends from left to right; the y coordinate extends upward.

Integers give the edges of pixels, like grid lines on graph paper.

An image object with dimensions of {width, height} is placed in the 2D space so that in a position {x,y} given in the standard image coordinate system, x runs continuously from 0 to width and y from 0 to height. The position {0,0} corresponds to the bottom-left corner. In the smiley image, the pixel that was at exactly {5,6} in matrix coordinates is now centered at {5.5,11.5} in image coordinates.

Image pixels are covered by intervals between successive integer coordinate values. Thus, noninteger coordinates are inside a single pixel. Integer coordinates are located on pixel boundaries, however, and take all immediate pixel neighbors into account, either by selecting all neighboring pixels or by taking their average color value.

Wolfram Language functions that focus on images adhere to image coordinates. Examples include ImageValue, ImageCrop and ImageDimensions.

Is this article helpful?
Yes
No

Any comments?

Thank you for your feedback.

Submit

Contact Support

Whether you have a question about billing, activation or something more technical, we are ready to help you.

1-800-WOLFRAM (+1-217-398-0700 for international callers)

Customer Support

Monday–Friday
8am–5pm US Central Time

  • Product registration or activation
  • Pre-sales information and ordering
  • Help with installation and first launch

Advanced Technical Support (for eligible customers)

Monday–Thursday
8am–5pm US Central Time

Friday
8:30–10am & 11am–5pm US Central Time

  • Priority technical support
  • Product assistance from Wolfram experts
  • Help with Wolfram Language programming
  • Advanced installation support