Contents
ice.Image LinearTransform(matrix)
This operation performs all coordinate transformations expressible as a 3x3 matrix. These include affine transformations (in which parallel lines stay parallel), translations and non-affine perspective transformations.
The resampling filter is a Catmull-Rom bicubic, whose width is calculated appropriately.
Parameters
matrix
3x3 transformation matrix (list).
Example
In the example below, i is of type ice.Image.
matrix = [1, 0.3, 0, 0.1, 1, 0, 0, 0, 1.0] result = i.LinearTransform(matrix
ice.Image Translate(point, filterType)
Translate an image with appropriate resampling. Integral pixel translate operations are automatically optimized.
Parameters
point
Translate by a specified number of pixels (tuple)
filter
resampling filter to use (int). Can be one of:
- ice.constants.FILTER_BILINEAR
- ice.constants.FILTER_BSPLINE
- ice.constants.FILTER_CATROM
- ice.constants.FILTER_LANCZOS
- ice.constants.FILTER_MITCHELL_NETRAVALI
- ice.constants.FILTER_POINTSAMPLE
Defaults to FILTER_CATROM (CatmullRom).
Example
filter = ice.constants.FILTER_BILINEAR amount = (23.5. 60.6) result = orig.Translate(amount, filter)
This is a special case of LinearTransform.
ice.Image Move(point)
Returns a copy of the operand image with its world coordinates moved by an integral amount. The copy will share data with the source, no resampling will be performed
Parameters
point
Move by a specified number of pixels (tuple)
ice.Image Scale(scale, filter)
Geometrically scale an image with appropriate resampling.
Parameters
scale
Scale by specified factors in x and y (list)
filter
resampling filter to use (int). Defaults to CatmullRom.
Example
filter = ice.constants.FILTER_LANCZOS amount = [0.5. 0.5] result = orig.Scale(amount, filter)
This is a special case of LinearTransform.
ice.Image Rotate(degrees, filter)
Rotate an image about (0, 0). The angle of rotation is measured counterclockwise.
Parameters
degrees
Angle of rotation in degrees (float)
filter
resampling filter to use (int). Defaults to CatmullRom
Example
This is a special case of LinearTransform.
ice.Image Resize(scale)
Fast geometric scaling using only point-sampling. Useful for previews and interactive display.
Parameters
scale
Scale by specified factors in x and y (list)
ice.Image Reformat(newBox, preserveAR, crop, anamorph)
This is an operation that fulfills a common need: that of changing the size of an image prior to saving. The arguments are self-explanatory: letter- or window-boxing is automatically performed if aspect ratio is to be preserved and cropping is not enabled. The anamorph argument is unity when no anamorphic display is intended: larger than unity when it is.
This is not a "native" operation: it internally comprises other operations arranged to yield the result desired.
Parameters
newBox
Desired box (list).
preserveAR
Should the aspect ratio be preserved (bool)? default = true.
crop
Should the image be cropped to preserve aspect ratio (bool)? default = true.
anamorph
If the final image is destined for anamorphic display, the "stretch factor" (float). default = 1.0.
ice.Image Flip(x, y, transpose)
This operation is optimized to perform the eight possible "unity-scale" transformations. These are illustrated below.
Parameters
x
Flip in x (bool)
y
Flip in y (bool)
transpose:
Transpose the image (bool)
Example
# No-op result = m1_1.Flip(False, False, False)
# Transpose axes result = m1_1.Flip(False, False, True)
# Flip in Y result = m1_1.Flip(False, True, False)
# Flip in Y and transpose axes result = m1_1.Flip(False, True, True)
# Flip in X result = m1_1.Flip(True, False, False)
# Flip in X and transpose axes result = m1_1.Flip(True, False, True)
# Flip in X and Y result = m1_1.Flip(True, True, False)
# Flip in X and Y and transpose result = m1_1.Flip(True, True, True)
ice.Image DisplacementWarp(warpImg, minMax, filterType, filterScale)
General displacement warp operation. WarpImg is a two-channel vector field containing the offset of the source pixel for each result pixel. The actual offset is given by:
O' = o * (max − min) + min
The type of the filter is normally best set to FILTER_CATROM. Since it is not possible to analytically determine a single best filter width, filterScale should be chosen to yield the best possible combination of sharpness and anti-aliasing. 1.0 is a good place to start: smaller values yield wider filters (and less sharpness).
Parameters
warpImg
Displacement image (ice.Image)
minMax
Displacements corresponding to 0 and 1 (list). defaults to [0, 1].
filterType
Filter type. Defaults to CatmullRom.
filterScale
Scale equivalent for filter width (float) defaults to 1.0
Example
Original Image:
Displacement Image:
Warped/Resultant Image:
minMax = [0, 10] filter = ice.constants.FILTER_MITCHELL_NETRAVALI fScale = 1.0 result = fruit.DisplacementWarp(disp, minMax, filter, fScale)