projective_trans_image_sizeT_projective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size — Apply a projective transformation to an image and specify the output
image size.
The used coordinate system is the same as in
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelaffine_trans_pixel. This means that in fact not
HomMat2DHomMat2DHomMat2DhomMat2Dhom_mat_2d is applied but a modified version. Therefore,
applying projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size corresponds to the following
chain of transformations, which is applied to each point
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_grayAreaCenterGrayAreaCenterGrayarea_center_gray. 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_rotateHomMat2dRotateHomMat2dRotatehom_mat2d_rotate, 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 HomMat2DHomMat2DHomMat2DhomMat2Dhom_mat_2d
before using it in projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size:
projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size 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 TransformDomainTransformDomainTransformDomaintransformDomaintransform_domain 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"