Point, Size, Extent¶
This document describes some of the classes used in the :mod`~ost.img` module to describe image properties such as size, pixel coordinates and extents.
Point¶
- class Point(x=0, y=0, z=0)¶
- class Point(vec)
- class Point(size)
- class Point(point)
- Parameters:
This class represents an image pixel. It is defined using three integer numbers, corresponding to the pixel’s indexes along the width, height and depth dimensions respectively.
- __getitem__(index)¶
Read-write access to the coordinates.
..code-block:: python
p=img.Point(1,2,3) print(p) p[1]=5
Size¶
- class Size(width, height, depth)¶
- class Size(width, height)
This property describes the size of an image. It is defined using three integer numbers: When depth is not specified, the size is assumed to refer to a 2D image two-dimensional (depth=1).
The
Size
class can be passed to theCreateImage()
function to define the size of the image being created.# uses the size class to create an image s=img.Size(40,20,30) i=img.CreateImage(s) # uses a temporary instance of the Size class i=img.CreateImage(img.Size(40,20,30))
Extent¶
- class Extent(first_point, last_point)¶
- class Extent(first_point, size)
- class Extent(size, center_point)
This class describes the extent of an image in pixels. The image extent is a rectangle in 2d and a cuboid in 3d, and can be defined in a number of ways: giving the first and the last point of the extent, specifying the first point and the size of the extent, or listing the size of the extent and its central point.
Some examples:
# defines a rectangular extent that goes from pixel (2,4) to pixel (5,10) s=img.Extent(img.Point(2,4),img.Point(5,10)) # defines the same extent using its first point and its size s=img.Extent(img.Point(2,4),img.Size(4,7)) # again the same extent using its size and central pixel s=img.Extent(img.Size(4,7),img.Point(3,7))
The
Extent
class can be passed to theCreateImage()
function to create an image with a specific extent.# uses the Extent class to create an image e=img.Extent(img.Point(2,4),img.Size(4,7)) i=img.CreateImage(e) # uses a temporary instance of the Extent class i=img.CreateImage(img.Extent(img.Point(2,4),img.Size(4,7)))
Given an
Extent
, is it possible to recover its full size, and also the length of each of its dimensions separately.Examples:
# gets the size of an extent (e is a 3D extent) s=e.GetSize() # gets the three dimensions separately w=e.GetWidth() h=e.GetHeight() d=e.GetDepth()
When one needs to visit all the image pixels belonging to an
Extent
in sequence, one can use anExtentIterator
:# defines an iterator over an extent e ei=ExtentIterator(e) # visits all the pixels in the extent and # prints out their values for pixel in ei: print(i.GetReal(pixel))