region_features (Operator)

Name

`region_features` — Calculate shape features of regions.

Signature

`region_features(Regions : : Features : Value)`

Description

The operator `region_features` calculates for each input region from `Regions` the indicated features (`Features`).

For an illustration of these features, please refer to the documentation of this chapter (Regions / Features).

Possible values for `Features`:

'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 `circularity`)

'compactness':

Compactness (see `compactness`)

'contlength':

Total length of contour (see operator `contlength`)

'convexity':

Convexity (see `convexity`)

'rectangularity':

Rectangularity (see `rectangularity`)

'ra':

Main radius of the equivalent ellipse (see `elliptic_axis`)

'rb':

Secondary radius of the equivalent ellipse (see `elliptic_axis`)

'phi':

Orientation of the equivalent ellipse (see `elliptic_axis`)

'anisometry:'

Anisometry (see `eccentricity`)

'bulkiness:'

Bulkiness (see operator `eccentricity`)

'struct_factor:'

Structure Factor (see operator `eccentricity`)

Radius of smallest surrounding circle (see `smallest_circle`)

Radius of largest inner circle (see `inner_circle`)

'inner_width':

Width of the largest axis-parallel rectangle that fits into the region (see `inner_rectangle1`)

'inner_height':

Height of the largest axis-parallel rectangle that fits into the region (see `inner_rectangle1`)

'dist_mean':

Mean distance from the region border to the center (see operator `roundness`)

'dist_deviation:'

Deviation of the distance from the region border to the center (see operator `roundness`)

'roundness':

Roundness (see operator `roundness`)

'num_sides':

Number of polygon sides (see operator `roundness`)

'connect_num':

Number of connection components (see operator `connect_and_holes`)

'holes_num':

Number of holes (see operator `connect_and_holes`)

'area_holes':

Area of the holes of the object (see operator `area_holes`)

'max_diameter':

Maximum diameter of the region (see operator `diameter_region`)

'orientation':

Orientation of the region (see operator `orientation_region`)

'euler_number':

Euler number (see operator `euler_number`)

'rect2_phi':

Orientation of the smallest surrounding rectangle (see operator `smallest_rectangle2`)

'rect2_len1':

Half the length of the smallest surrounding rectangle (see operator `smallest_rectangle2`)

'rect2_len2':

Half the width of the smallest surrounding rectangle (see operator `smallest_rectangle2`)

'moments_m11':

Geometric moments of the region (see operator `moments_region_2nd`)

'moments_m20':

Geometric moments of the region (see operator `moments_region_2nd`)

'moments_m02':

Geometric moments of the region (see operator `moments_region_2nd`)

'moments_ia':

Geometric moments of the region (see operator `moments_region_2nd`)

'moments_ib':

Geometric moments of the region (see operator `moments_region_2nd`)

'moments_m11_invar':

Geometric moments of the region (see operator `moments_region_2nd_invar`)

'moments_m20_invar':

Geometric moments of the region (see operator `moments_region_2nd_invar`)

'moments_m02_invar':

Geometric moments of the region (see operator `moments_region_2nd_invar`)

'moments_phi1':

Geometric moments of the region (see operator `moments_region_2nd_rel_invar`)

'moments_phi2':

Geometric moments of the region (see operator `moments_region_2nd_rel_invar`)

'moments_m21':

Geometric moments of the region (see operator `moments_region_3rd`)

'moments_m12':

Geometric moments of the region (see operator `moments_region_3rd`)

'moments_m03':

Geometric moments of the region (see operator `moments_region_3rd`)

'moments_m30':

Geometric moments of the region (see operator `moments_region_3rd`)

'moments_m21_invar':

Geometric moments of the region (see operator `moments_region_3rd_invar`)

'moments_m12_invar':

Geometric moments of the region (see operator `moments_region_3rd_invar`)

'moments_m03_invar':

Geometric moments of the region (see operator `moments_region_3rd_invar`)

'moments_m30_invar':

Geometric moments of the region (see operator `moments_region_3rd_invar`)

'moments_i1':

Geometric moments of the region (see operator `moments_region_central`)

'moments_i2':

Geometric moments of the region (see operator `moments_region_central`)

'moments_i3':

Geometric moments of the region (see operator `moments_region_central`)

'moments_i4':

Geometric moments of the region (see operator `moments_region_central`)

'moments_psi1':

Geometric moments of the region (see operator `moments_region_central_invar`)

'moments_psi2':

Geometric moments of the region (see operator `moments_region_central_invar`)

'moments_psi3':

Geometric moments of the region (see operator `moments_region_central_invar`)

'moments_psi4':

Geometric moments of the region (see operator `moments_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).
• Automatically parallelized on tuple level.

Parameters

`Regions` (input_object)  region-array `→` object

Regions to be examined.

`Features` (input_control)  string(-array) `→` (string)

Shape features to be calculated.

Default: 'area'

List of values: 'anisometry', 'area', 'area_holes', 'bulkiness', 'circularity', 'column', 'column1', 'column2', 'compactness', 'connect_num', 'contlength', 'convexity', 'dist_deviation', 'dist_mean', 'euler_number', 'height', 'holes_num', 'inner_height', 'inner_radius', 'inner_width', 'max_diameter', 'moments_i1', 'moments_i2', 'moments_i3', 'moments_i4', 'moments_ia', 'moments_ib', 'moments_m02', 'moments_m02_invar', 'moments_m03', 'moments_m03_invar', 'moments_m11', 'moments_m11_invar', 'moments_m12', 'moments_m12_invar', 'moments_m20', 'moments_m20_invar', 'moments_m21', 'moments_m21_invar', 'moments_m30', 'moments_m30_invar', 'moments_phi1', 'moments_phi2', 'moments_psi1', 'moments_psi2', 'moments_psi3', 'moments_psi4', 'num_sides', 'orientation', 'outer_radius', 'phi', 'ra', 'ratio', 'rb', 'rect2_len1', 'rect2_len2', 'rect2_phi', 'rectangularity', 'roundness', 'row', 'row1', 'row2', 'struct_factor', 'width'

`Value` (output_control)  real(-array) `→` (real)

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_features` returns the value 2 ( H_MSG_TRUE) if the input is not empty. If necessary an exception is raised.

Possible Predecessors

`threshold`, `regiongrowing`, `connection`, `runlength_features`

Possible Successors

`select_shape`, `select_gray`, `shape_trans`, `reduce_domain`, `count_obj`

`area_center`, `circularity`, `compactness`, `contlength`, `convexity`, `rectangularity`, `elliptic_axis`, `eccentricity`, `inner_circle`, `smallest_circle`, `smallest_rectangle1`, `smallest_rectangle2`, `inner_rectangle1`, `roundness`, `connect_and_holes`, `area_holes`, `diameter_region`, `orientation_region`, `moments_region_2nd`, `moments_region_2nd_invar`, `moments_region_2nd_rel_invar`, `moments_region_3rd`, `moments_region_3rd_invar`, `moments_region_central`, `moments_region_central_invar`, `select_obj`, `select_shape`