| java.lang.Object javax.media.jai.Warp javax.media.jai.WarpPolynomial javax.media.jai.WarpCubic
WarpCubic | final public class WarpCubic extends WarpPolynomial (Code) | | A cubic-based description of an image warp.
The source position (x', y') of a point (x, y) is given by the
cubic polynomial:
x' = p(x, y) = c1 + c2*x + c3*y + c4*x^2 + c5*x*y + c6*y^2 +
c7*x^3 + c8*x^2*y + c9*x*y^2 + c10*y^3
y' = q(x, y) = c11 + c12*x + c13*y + c14*x^2 + c15*x*y + c16*y^2 +
c17*x^3 + c18*x^2*y + c19*x*y^2 + c20*y^3
WarpCubic is marked final so that it may be
more easily inlined.
See Also: WarpPolynomial |
Constructor Summary | |
public | WarpCubic(float[] xCoeffs, float[] yCoeffs, float preScaleX, float preScaleY, float postScaleX, float postScaleY) Constructs a WarpCubic with a given transform mapping
destination pixels into source space. | public | WarpCubic(float[] xCoeffs, float[] yCoeffs) Constructs a WarpCubic with pre- and post-scale
factors of 1. |
Method Summary | |
public Point2D | mapDestPoint(Point2D destPt) Computes the source point corresponding to the supplied point.
This method returns the value of pt in the following
code snippet:
double x1 = (destPt.getX() + 0.5F)*preScaleX;
double x2 = x1*x1;
double x3 = x2*x1;
double y1 = (destPt.getY() + 0.5F)*preScaleY;
double y2 = y1*y1;
double y3 = y2*y1;
double sx = c1 + c2*x1 + c3*y1 +
c4*x2 + c5*x1*y1 + c6*y2 +
c7*x3 + c8*x2*y1 + c9*x1*y2 + c10*y3;
double sy = c11 + c12*x1 + c13*y1 +
c14*x2 + c15*x1*y1 + c16*y2 +
c17*x3 + c18*x2*y1 + c19*x1*y2 + c20*y3;
Point2D pt = (Point2D)destPt.clone();
pt.setLocation(sx*postScaleX - 0.5, sy*postScaleY - 0.5);
Parameters: destPt - the position in destination image coordinatesto map to source image coordinates. | public float[] | warpSparseRect(int x, int y, int width, int height, int periodX, int periodY, float[] destRect) Computes the source subpixel positions for a given rectangular
destination region, subsampled with an integral period. |
WarpCubic | public WarpCubic(float[] xCoeffs, float[] yCoeffs, float preScaleX, float preScaleY, float postScaleX, float postScaleY)(Code) | | Constructs a WarpCubic with a given transform mapping
destination pixels into source space. Note that this is
a backward mapping as opposed to the forward mapping used in
AffineOpImage. The coeffs arrays must each contain 10 floats
corresponding to the coefficients c1, c2, etc. as shown in the
class comment.
Parameters: xCoeffs - The 10 destination to source transform coefficients forthe X coordinate. Parameters: yCoeffs - The 10 destination to source transform coefficients forthe Y coordinate. Parameters: preScaleX - The scale factor to apply to input (dest) X positions. Parameters: preScaleY - The scale factor to apply to input (dest) Y positions. Parameters: postScaleX - The scale factor to apply to the result of the X polynomial evaluation Parameters: postScaleY - The scale factor to apply to the result of the Y polynomial evaluation throws: IllegalArgumentException - if the length of the xCoeffs and yCoeffs arrays are not both 10. |
WarpCubic | public WarpCubic(float[] xCoeffs, float[] yCoeffs)(Code) | | Constructs a WarpCubic with pre- and post-scale
factors of 1.
Parameters: xCoeffs - The 10 destination to source transform coefficients forthe X coordinate. Parameters: yCoeffs - The 10 destination to source transform coefficients forthe Y coordinate. throws: IllegalArgumentException - if the length of the xCoeffs and yCoeffs arrays are not both 10. |
mapDestPoint | public Point2D mapDestPoint(Point2D destPt)(Code) | | Computes the source point corresponding to the supplied point.
This method returns the value of pt in the following
code snippet:
double x1 = (destPt.getX() + 0.5F)*preScaleX;
double x2 = x1*x1;
double x3 = x2*x1;
double y1 = (destPt.getY() + 0.5F)*preScaleY;
double y2 = y1*y1;
double y3 = y2*y1;
double sx = c1 + c2*x1 + c3*y1 +
c4*x2 + c5*x1*y1 + c6*y2 +
c7*x3 + c8*x2*y1 + c9*x1*y2 + c10*y3;
double sy = c11 + c12*x1 + c13*y1 +
c14*x2 + c15*x1*y1 + c16*y2 +
c17*x3 + c18*x2*y1 + c19*x1*y2 + c20*y3;
Point2D pt = (Point2D)destPt.clone();
pt.setLocation(sx*postScaleX - 0.5, sy*postScaleY - 0.5);
Parameters: destPt - the position in destination image coordinatesto map to source image coordinates. a Point2D of the same class asdestPt . throws: IllegalArgumentException - if destPt isnull . since: JAI 1.1.2 |
warpSparseRect | public float[] warpSparseRect(int x, int y, int width, int height, int periodX, int periodY, float[] destRect)(Code) | | Computes the source subpixel positions for a given rectangular
destination region, subsampled with an integral period. The
destination region is specified using normal integral (full
pixel) coordinates. The source positions returned by the
method are specified in floating point.
Parameters: x - The minimum X coordinate of the destination region. Parameters: y - The minimum Y coordinate of the destination region. Parameters: width - The width of the destination region. Parameters: height - The height of the destination region. Parameters: periodX - The horizontal sampling period. Parameters: periodY - The vertical sampling period. Parameters: destRect - A float array containing at least2*((width+periodX-1)/periodX)*((height+periodY-1)/periodY) elements, or null . If null , anew array will be constructed. A reference to the destRect parameter ifit is non-null , or a newfloat array otherwise. throws: ArrayBoundsException - if destRect is too small |
Methods inherited from javax.media.jai.Warp | public Point2D mapDestPoint(Point2D destPt)(Code)(Java Doc) public Rectangle mapDestRect(Rectangle destRect)(Code)(Java Doc) public Point2D mapSourcePoint(Point2D sourcePt)(Code)(Java Doc) public Rectangle mapSourceRect(Rectangle sourceRect)(Code)(Java Doc) public int[] warpPoint(int x, int y, int subsampleBitsH, int subsampleBitsV, int[] destRect)(Code)(Java Doc) public float[] warpPoint(int x, int y, float[] destRect)(Code)(Java Doc) public int[] warpRect(int x, int y, int width, int height, int subsampleBitsH, int subsampleBitsV, int[] destRect)(Code)(Java Doc) public float[] warpRect(int x, int y, int width, int height, float[] destRect)(Code)(Java Doc) public int[] warpSparseRect(int x, int y, int width, int height, int periodX, int periodY, int subsampleBitsH, int subsampleBitsV, int[] destRect)(Code)(Java Doc) abstract public float[] warpSparseRect(int x, int y, int width, int height, int periodX, int periodY, float[] destRect)(Code)(Java Doc)
|
|
|