region_featuresregion_featuresRegionFeaturesRegionFeaturesregion_features (Operator)
Name
region_featuresregion_featuresRegionFeaturesRegionFeaturesregion_features
— Calculate shape features of regions.
Signature
def region_features(regions: HObject, features: MaybeSequence[str]) -> Sequence[float]
def region_features_s(regions: HObject, features: MaybeSequence[str]) -> float
Description
The operator region_featuresregion_featuresRegionFeaturesRegionFeaturesRegionFeaturesregion_features
calculates for each input
region from RegionsRegionsRegionsRegionsregionsregions
the indicated features
(FeaturesFeaturesFeaturesFeaturesfeaturesfeatures
).
For an illustration of these features, please refer to the
documentation of this chapter (Regions / Features).
Possible values for FeaturesFeaturesFeaturesFeaturesfeaturesfeatures
:
- 'area':
Area of the object
- 'row':
Row index of the center
- 'column':
Column index of the center
- 'row1':
Row index of upper left corner
- 'column1':
Column index of upper left corner
- 'row2':
Row index of lower right corner
- 'column2':
Column index of lower right corner
- 'width':
Width of the region (parallel to the
coordinate axes)
- 'height':
Height of the region (parallel to the
coordinate axes)
- 'ratio':
Ratio of the height and the width of the
region (parallel to the coordinate axes)
- 'circularity':
Circularity (see circularitycircularityCircularityCircularityCircularitycircularity
)
- 'compactness':
Compactness (see compactnesscompactnessCompactnessCompactnessCompactnesscompactness
)
- 'contlength':
Total length of contour (see operator
contlengthcontlengthContlengthContlengthContlengthcontlength
)
- 'convexity':
Convexity (see convexityconvexityConvexityConvexityConvexityconvexity
)
- 'rectangularity':
Rectangularity (see rectangularityrectangularityRectangularityRectangularityRectangularityrectangularity
)
- 'ra':
Main radius of the equivalent ellipse
(see elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxiselliptic_axis
)
- 'rb':
Secondary radius of the equivalent ellipse
(see elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxiselliptic_axis
)
- 'phi':
Orientation of the equivalent ellipse
(see elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxiselliptic_axis
)
- 'anisometry:'
Anisometry (see eccentricityeccentricityEccentricityEccentricityEccentricityeccentricity
)
- 'bulkiness:'
Bulkiness (see operator eccentricityeccentricityEccentricityEccentricityEccentricityeccentricity
)
- 'struct_factor:'
Structure Factor (see operator eccentricityeccentricityEccentricityEccentricityEccentricityeccentricity
)
- 'outer_radius':
Radius of smallest surrounding circle
(see smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCirclesmallest_circle
)
- 'inner_radius':
Radius of largest inner circle
(see inner_circleinner_circleInnerCircleInnerCircleInnerCircleinner_circle
)
- 'inner_width':
Width of the largest axis-parallel rectangle that
fits into the region (see inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1inner_rectangle1
)
- 'inner_height':
Height of the largest axis-parallel rectangle that
fits into the region (see inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1inner_rectangle1
)
- 'dist_mean':
Mean distance from the region border to the
center (see operator roundnessroundnessRoundnessRoundnessRoundnessroundness
)
- 'dist_deviation:'
Deviation of the distance from the region border
to the center (see operator roundnessroundnessRoundnessRoundnessRoundnessroundness
)
- 'roundness':
Roundness (see operator roundnessroundnessRoundnessRoundnessRoundnessroundness
)
- 'num_sides':
Number of polygon sides (see operator
roundnessroundnessRoundnessRoundnessRoundnessroundness
)
- 'connect_num':
Number of connection components
(see operator connect_and_holesconnect_and_holesConnectAndHolesConnectAndHolesConnectAndHolesconnect_and_holes
)
- 'holes_num':
Number of holes
(see operator connect_and_holesconnect_and_holesConnectAndHolesConnectAndHolesConnectAndHolesconnect_and_holes
)
- 'area_holes':
Area of the holes of the object
(see operator area_holesarea_holesAreaHolesAreaHolesAreaHolesarea_holes
)
- 'max_diameter':
Maximum diameter of the region
(see operator diameter_regiondiameter_regionDiameterRegionDiameterRegionDiameterRegiondiameter_region
)
- 'orientation':
Orientation of the region
(see operator orientation_regionorientation_regionOrientationRegionOrientationRegionOrientationRegionorientation_region
)
- 'euler_number':
Euler number (see operator euler_numbereuler_numberEulerNumberEulerNumberEulerNumbereuler_number
)
- 'rect2_phi':
Orientation of the smallest surrounding rectangle
(see operator smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2
)
- 'rect2_len1':
Half the length of the smallest surrounding
rectangle (see operator smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2
)
- 'rect2_len2':
Half the width of the smallest surrounding
rectangle (see operator smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2
)
- 'moments_m11':
Geometric moments of the region
(see operator moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
)
- 'moments_m20':
Geometric moments of the region
(see operator moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
)
- 'moments_m02':
Geometric moments of the region
(see operator moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
)
- 'moments_ia':
Geometric moments of the region
(see operator moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
)
- 'moments_ib':
Geometric moments of the region
(see operator moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
)
- 'moments_m11_invar':
Geometric moments of the region
(see operator moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar
)
- 'moments_m20_invar':
Geometric moments of the region
(see operator moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar
)
- 'moments_m02_invar':
Geometric moments of the region
(see operator moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar
)
- 'moments_phi1':
Geometric moments of the region
(see operator moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarmoments_region_2nd_rel_invar
)
- 'moments_phi2':
Geometric moments of the region
(see operator moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarmoments_region_2nd_rel_invar
)
- 'moments_m21':
Geometric moments of the region
(see operator moments_region_3rdmoments_region_3rdMomentsRegion3rdMomentsRegion3rdMomentsRegion3rdmoments_region_3rd
)
- 'moments_m12':
Geometric moments of the region
(see operator moments_region_3rdmoments_region_3rdMomentsRegion3rdMomentsRegion3rdMomentsRegion3rdmoments_region_3rd
)
- 'moments_m03':
Geometric moments of the region
(see operator moments_region_3rdmoments_region_3rdMomentsRegion3rdMomentsRegion3rdMomentsRegion3rdmoments_region_3rd
)
- 'moments_m30':
Geometric moments of the region
(see operator moments_region_3rdmoments_region_3rdMomentsRegion3rdMomentsRegion3rdMomentsRegion3rdmoments_region_3rd
)
- 'moments_m21_invar':
Geometric moments of the region
(see operator moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvarmoments_region_3rd_invar
)
- 'moments_m12_invar':
Geometric moments of the region
(see operator moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvarmoments_region_3rd_invar
)
- 'moments_m03_invar':
Geometric moments of the region
(see operator moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvarmoments_region_3rd_invar
)
- 'moments_m30_invar':
Geometric moments of the region
(see operator moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvarmoments_region_3rd_invar
)
- 'moments_i1':
Geometric moments of the region
(see operator moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentralmoments_region_central
)
- 'moments_i2':
Geometric moments of the region
(see operator moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentralmoments_region_central
)
- 'moments_i3':
Geometric moments of the region
(see operator moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentralmoments_region_central
)
- 'moments_i4':
Geometric moments of the region
(see operator moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentralmoments_region_central
)
- 'moments_psi1':
Geometric moments of the region
(see operator moments_region_central_invarmoments_region_central_invarMomentsRegionCentralInvarMomentsRegionCentralInvarMomentsRegionCentralInvarmoments_region_central_invar
)
- 'moments_psi2':
Geometric moments of the region
(see operator moments_region_central_invarmoments_region_central_invarMomentsRegionCentralInvarMomentsRegionCentralInvarMomentsRegionCentralInvarmoments_region_central_invar
)
- 'moments_psi3':
Geometric moments of the region
(see operator moments_region_central_invarmoments_region_central_invarMomentsRegionCentralInvarMomentsRegionCentralInvarMomentsRegionCentralInvarmoments_region_central_invar
)
- 'moments_psi4':
Geometric moments of the region
(see operator moments_region_central_invarmoments_region_central_invarMomentsRegionCentralInvarMomentsRegionCentralInvarMomentsRegionCentralInvarmoments_region_central_invar
)
Several features are processed in the sequence in which they are entered.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Parameters
RegionsRegionsRegionsRegionsregionsregions
(input_object) region-array →
objectHRegionHObjectHRegionHobject
Regions to be examined.
FeaturesFeaturesFeaturesFeaturesfeaturesfeatures
(input_control) string(-array) →
HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Shape features to be calculated.
Default:
'area'
"area"
"area"
"area"
"area"
"area"
List of values:
'anisometry'"anisometry""anisometry""anisometry""anisometry""anisometry", 'area'"area""area""area""area""area", 'area_holes'"area_holes""area_holes""area_holes""area_holes""area_holes", 'bulkiness'"bulkiness""bulkiness""bulkiness""bulkiness""bulkiness", 'circularity'"circularity""circularity""circularity""circularity""circularity", 'column'"column""column""column""column""column", 'column1'"column1""column1""column1""column1""column1", 'column2'"column2""column2""column2""column2""column2", 'compactness'"compactness""compactness""compactness""compactness""compactness", 'connect_num'"connect_num""connect_num""connect_num""connect_num""connect_num", 'contlength'"contlength""contlength""contlength""contlength""contlength", 'convexity'"convexity""convexity""convexity""convexity""convexity", 'dist_deviation'"dist_deviation""dist_deviation""dist_deviation""dist_deviation""dist_deviation", 'dist_mean'"dist_mean""dist_mean""dist_mean""dist_mean""dist_mean", 'euler_number'"euler_number""euler_number""euler_number""euler_number""euler_number", 'height'"height""height""height""height""height", 'holes_num'"holes_num""holes_num""holes_num""holes_num""holes_num", 'inner_height'"inner_height""inner_height""inner_height""inner_height""inner_height", 'inner_radius'"inner_radius""inner_radius""inner_radius""inner_radius""inner_radius", 'inner_width'"inner_width""inner_width""inner_width""inner_width""inner_width", 'max_diameter'"max_diameter""max_diameter""max_diameter""max_diameter""max_diameter", 'moments_i1'"moments_i1""moments_i1""moments_i1""moments_i1""moments_i1", 'moments_i2'"moments_i2""moments_i2""moments_i2""moments_i2""moments_i2", 'moments_i3'"moments_i3""moments_i3""moments_i3""moments_i3""moments_i3", 'moments_i4'"moments_i4""moments_i4""moments_i4""moments_i4""moments_i4", 'moments_ia'"moments_ia""moments_ia""moments_ia""moments_ia""moments_ia", 'moments_ib'"moments_ib""moments_ib""moments_ib""moments_ib""moments_ib", 'moments_m02'"moments_m02""moments_m02""moments_m02""moments_m02""moments_m02", 'moments_m02_invar'"moments_m02_invar""moments_m02_invar""moments_m02_invar""moments_m02_invar""moments_m02_invar", 'moments_m03'"moments_m03""moments_m03""moments_m03""moments_m03""moments_m03", 'moments_m03_invar'"moments_m03_invar""moments_m03_invar""moments_m03_invar""moments_m03_invar""moments_m03_invar", 'moments_m11'"moments_m11""moments_m11""moments_m11""moments_m11""moments_m11", 'moments_m11_invar'"moments_m11_invar""moments_m11_invar""moments_m11_invar""moments_m11_invar""moments_m11_invar", 'moments_m12'"moments_m12""moments_m12""moments_m12""moments_m12""moments_m12", 'moments_m12_invar'"moments_m12_invar""moments_m12_invar""moments_m12_invar""moments_m12_invar""moments_m12_invar", 'moments_m20'"moments_m20""moments_m20""moments_m20""moments_m20""moments_m20", 'moments_m20_invar'"moments_m20_invar""moments_m20_invar""moments_m20_invar""moments_m20_invar""moments_m20_invar", 'moments_m21'"moments_m21""moments_m21""moments_m21""moments_m21""moments_m21", 'moments_m21_invar'"moments_m21_invar""moments_m21_invar""moments_m21_invar""moments_m21_invar""moments_m21_invar", 'moments_m30'"moments_m30""moments_m30""moments_m30""moments_m30""moments_m30", 'moments_m30_invar'"moments_m30_invar""moments_m30_invar""moments_m30_invar""moments_m30_invar""moments_m30_invar", 'moments_phi1'"moments_phi1""moments_phi1""moments_phi1""moments_phi1""moments_phi1", 'moments_phi2'"moments_phi2""moments_phi2""moments_phi2""moments_phi2""moments_phi2", 'moments_psi1'"moments_psi1""moments_psi1""moments_psi1""moments_psi1""moments_psi1", 'moments_psi2'"moments_psi2""moments_psi2""moments_psi2""moments_psi2""moments_psi2", 'moments_psi3'"moments_psi3""moments_psi3""moments_psi3""moments_psi3""moments_psi3", 'moments_psi4'"moments_psi4""moments_psi4""moments_psi4""moments_psi4""moments_psi4", 'num_sides'"num_sides""num_sides""num_sides""num_sides""num_sides", 'orientation'"orientation""orientation""orientation""orientation""orientation", 'outer_radius'"outer_radius""outer_radius""outer_radius""outer_radius""outer_radius", 'phi'"phi""phi""phi""phi""phi", 'ra'"ra""ra""ra""ra""ra", 'ratio'"ratio""ratio""ratio""ratio""ratio", 'rb'"rb""rb""rb""rb""rb", 'rect2_len1'"rect2_len1""rect2_len1""rect2_len1""rect2_len1""rect2_len1", 'rect2_len2'"rect2_len2""rect2_len2""rect2_len2""rect2_len2""rect2_len2", 'rect2_phi'"rect2_phi""rect2_phi""rect2_phi""rect2_phi""rect2_phi", 'rectangularity'"rectangularity""rectangularity""rectangularity""rectangularity""rectangularity", 'roundness'"roundness""roundness""roundness""roundness""roundness", 'row'"row""row""row""row""row", 'row1'"row1""row1""row1""row1""row1", 'row2'"row2""row2""row2""row2""row2", 'struct_factor'"struct_factor""struct_factor""struct_factor""struct_factor""struct_factor", 'width'"width""width""width""width""width"
ValueValueValueValuevaluevalue
(output_control) real(-array) →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
The calculated features.
Example (HDevelop)
read_image(Image,'monkey')
threshold(Image,S1,160,255)
connection(S1,S2)
region_features(S2,['area','anisometry'],Value)
Result
The operator region_featuresregion_featuresRegionFeaturesRegionFeaturesRegionFeaturesregion_features
returns the value 2 (
H_MSG_TRUE)
if the input is not empty. If necessary an exception is raised.
Possible Predecessors
thresholdthresholdThresholdThresholdThresholdthreshold
,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing
,
connectionconnectionConnectionConnectionConnectionconnection
,
runlength_featuresrunlength_featuresRunlengthFeaturesRunlengthFeaturesRunlengthFeaturesrunlength_features
Possible Successors
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape
,
select_grayselect_graySelectGraySelectGraySelectGrayselect_gray
,
shape_transshape_transShapeTransShapeTransShapeTransshape_trans
,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain
,
count_objcount_objCountObjCountObjCountObjcount_obj
See also
area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center
,
circularitycircularityCircularityCircularityCircularitycircularity
,
compactnesscompactnessCompactnessCompactnessCompactnesscompactness
,
contlengthcontlengthContlengthContlengthContlengthcontlength
,
convexityconvexityConvexityConvexityConvexityconvexity
,
rectangularityrectangularityRectangularityRectangularityRectangularityrectangularity
,
elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxiselliptic_axis
,
eccentricityeccentricityEccentricityEccentricityEccentricityeccentricity
,
inner_circleinner_circleInnerCircleInnerCircleInnerCircleinner_circle
,
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCirclesmallest_circle
,
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1
,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2
,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1inner_rectangle1
,
roundnessroundnessRoundnessRoundnessRoundnessroundness
,
connect_and_holesconnect_and_holesConnectAndHolesConnectAndHolesConnectAndHolesconnect_and_holes
,
area_holesarea_holesAreaHolesAreaHolesAreaHolesarea_holes
,
diameter_regiondiameter_regionDiameterRegionDiameterRegionDiameterRegiondiameter_region
,
orientation_regionorientation_regionOrientationRegionOrientationRegionOrientationRegionorientation_region
,
moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd
,
moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar
,
moments_region_2nd_rel_invarmoments_region_2nd_rel_invarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarMomentsRegion2ndRelInvarmoments_region_2nd_rel_invar
,
moments_region_3rdmoments_region_3rdMomentsRegion3rdMomentsRegion3rdMomentsRegion3rdmoments_region_3rd
,
moments_region_3rd_invarmoments_region_3rd_invarMomentsRegion3rdInvarMomentsRegion3rdInvarMomentsRegion3rdInvarmoments_region_3rd_invar
,
moments_region_centralmoments_region_centralMomentsRegionCentralMomentsRegionCentralMomentsRegionCentralmoments_region_central
,
moments_region_central_invarmoments_region_central_invarMomentsRegionCentralInvarMomentsRegionCentralInvarMomentsRegionCentralInvarmoments_region_central_invar
,
select_objselect_objSelectObjSelectObjSelectObjselect_obj
,
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape
Module
Foundation