polar_trans_region_inv
— Transform a region in polar coordinates back to cartesian
coordinates.
polar_trans_region_inv(PolarRegion : XYTransRegion : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, WidthIn, HeightIn, Width, Height, Interpolation : )
polar_trans_region_inv
transforms the polar coordinate
representation of a region, stored in PolarRegion
, back
onto an annular arc in cartesian coordinates, described by the radii
RadiusStart
and RadiusEnd
and the angles
AngleStart
and AngleEnd
with the center point
located at (Row
, Column
). All of these values can
be chosen as real numbers. In addition, the dimensions of the
virtual image containing the region PolarRegion
must be
given in WidthIn
and
HeightIn
. WidthIn
-1 is the column coordinate
corresponding to AngleEnd
and HeightIn
-1 is the
row coordinate corresponding to
RadiusEnd
. AngleStart
and RadiusStart
correspond to column and row coordinate 0. Furthermore,
the dimensions Width
and Height
of the virtual
output image containing the transformed region
XYTransRegion
are required.
The angles and radii are inclusive, which means that the row
coordinate 0 in PolarRegion
will be mapped onto a
a circle with a distance of RadiusStart
pixels from the
specified center and the row with the coordinate
HeightIn
-1 will be mapped onto a circle of radius
RadiusEnd
. This applies to AngleStart
,
AngleEnd
, and WidthIn
in an analogous way. If the
width of the input region PolarRegion
corresponds to an
angle interval greater than 2pi, the region is cropped such that
length of this interval is 2pi.
The parameter Interpolation
is used to select the
interpolation method 'bilinear' or
'nearest_neighbor' . Setting Interpolation
to
'bilinear' leads to smoother region boundaries, especially
if regions are enlarged. However, the runtime increases
significantly.
polar_trans_region_inv
is the inverse function of
polar_trans_region
.
The call sequence:
polar_trans_region(Region, PolarRegion, Row, Column, rad(360), 0, 0,
Radius, Width, Height, 'nearest_neighbor')
polar_trans_region_inv(PolarRegion, XYTransRegion, Row, Column, rad(360), 0,
0, Radius, Width, Height, Width, Height,
'nearest_neighbor')
returns the region Region
, restricted to the circle around
(Row
, Column
) with radius Radius
, as its
output region XYTransRegion
.
If more than one region is passed in PolarRegion
, their
cartesian transformations are computed individually and stored as a
tuple in XYTransRegion
. Please note that the indices of an
input region and its transformation only correspond if the system
variable 'store_empty_regions' is set to 'false'
(see set_system
). Otherwise empty output regions are
discarded and the length of the input tuple PolarRegion
is
most likely not equal to the length of the output tuple
XYTransRegion
.
For an explanation of the different 2D coordinate systems used in HALCON, see the introduction of chapter Transformations / 2D Transformations.
If Width
or Height
are chosen greater than the
dimensions of the current image, the system variable
'clip_region' should be set to 'false' (see
set_system
). Otherwise, an output region that does not lie
within the dimensions of the current image can produce an error
message.
PolarRegion
(input_object) region(-array) →
object
Input region.
XYTransRegion
(output_object) region(-array) →
object
Output region.
Row
(input_control) number →
(real / integer)
Row coordinate of the center of the arc.
Default value: 256
Suggested values: 0, 16, 32, 64, 128, 240, 256, 480, 512
Typical range of values: 0
≤
Row
≤
32767
Restriction: Row >= -131068 && Row <= 131068
Column
(input_control) number →
(real / integer)
Column coordinate of the center of the arc.
Default value: 256
Suggested values: 0, 16, 32, 64, 128, 256, 320, 512, 640
Typical range of values: 0
≤
Column
≤
32767
Restriction: Column >= -131068 && Column <= 131068
AngleStart
(input_control) angle.rad →
(real)
Angle of the ray to map the column coordinate 0
of PolarRegion
to.
Default value: 0.0
Suggested values: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
Typical range of values: -6.2831853
≤
AngleStart
≤
6.2831853
AngleEnd
(input_control) angle.rad →
(real)
Angle of the ray to map the column coordinate
WidthIn
-1 of PolarRegion
to.
Default value: 6.2831853
Suggested values: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
Typical range of values: -6.2831853
≤
AngleEnd
≤
6.2831853
RadiusStart
(input_control) number →
(real / integer)
Radius of the circle to map the row coordinate
0 of PolarRegion
to.
Default value: 0
Suggested values: 0, 16, 32, 64, 100, 128, 256, 512
Typical range of values: 0
≤
RadiusStart
≤
32767
RadiusEnd
(input_control) number →
(real / integer)
Radius of the circle to map the row coordinate
HeightIn
-1 of PolarRegion
to.
Default value: 100
Suggested values: 0, 16, 32, 64, 100, 128, 256, 512
Typical range of values: 0
≤
RadiusEnd
≤
32767
WidthIn
(input_control) extent.x →
(integer)
Width of the virtual input image.
Default value: 512
Suggested values: 256, 320, 512, 640, 800, 1024
Typical range of values: 2
≤
WidthIn
≤
32767
HeightIn
(input_control) extent.y →
(integer)
Height of the virtual input image.
Default value: 512
Suggested values: 240, 256, 480, 512, 600, 1024
Typical range of values: 2
≤
HeightIn
≤
32767
Width
(input_control) extent.x →
(integer)
Width of the virtual output image.
Default value: 512
Suggested values: 256, 320, 512, 640, 800, 1024
Typical range of values: 1
≤
Width
≤
32767
Height
(input_control) extent.y →
(integer)
Height of the virtual output image.
Default value: 512
Suggested values: 240, 256, 480, 512, 600, 1024
Typical range of values: 1
≤
Height
≤
32767
Interpolation
(input_control) string →
(string)
Interpolation method for the transformation.
Default value: 'nearest_neighbor'
List of values: 'bilinear' , 'nearest_neighbor'
polar_trans_image_ext
,
polar_trans_image_inv
,
polar_trans_region
,
polar_trans_contour_xld
,
polar_trans_contour_xld_inv
Foundation