For images of type 'byte'"byte""byte""byte""byte" or 'uint2'"uint2""uint2""uint2""uint2" the system
parameter 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" selects between fast calculation in
fixed point arithmetics ('int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'true'"true""true""true""true")
and highly accurate calculation in floating point arithmetics
('int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'false'"false""false""false""false"). Especially for
InterpolationInterpolationInterpolationInterpolationinterpolation = 'bilinear'"bilinear""bilinear""bilinear""bilinear", however, fixed point
calculation can lead to minor gray value deviations since the faster
algorithm achieves an accuracy of no more than
pixels. Therefore, when applying large
scales 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'false'"false""false""false""false" is recommended.
Attention
The used coordinate system is the same as in
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel. This means that in fact not
HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D is applied but a modified version. Therefore,
applying projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageProjectiveTransImage corresponds to the following
chain of transformations, which is applied to each point (Row_i,
Col_i) of the image (input and output
pixels as homogeneous vectors):
As an effect, you might get unexpected results when creating projective
transformations based on coordinates that are derived from the
image, e.g., by operators like area_center_grayarea_center_grayAreaCenterGrayAreaCenterGrayAreaCenterGray. For
example, if you use this operator to calculate the center of gravity
of a rotationally symmetric image and then rotate the image around
this point using hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotateHomMat2dRotate, the resulting image will
not lie on the original one. In such a case, you can compensate this
effect by applying the following translations to HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D
before using it in projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageProjectiveTransImage:
projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageProjectiveTransImage can be executed on OpenCL devices if the input
image does not exceed the maximum size of image objects of the selected
device and the parameter TransformDomainTransformDomainTransformDomainTransformDomaintransformDomain is set to
'false'"false""false""false""false". The result can diverge slightly from that calculated on
the CPU.
Execution Information
Supports OpenCL compute devices.
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Automatically parallelized on channel level.
Automatically parallelized on internal data level.
List of values: 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"