Operator Reference

shape_histo_allT_shape_histo_allShapeHistoAllShapeHistoAllshape_histo_all (Operator)

shape_histo_allT_shape_histo_allShapeHistoAllShapeHistoAllshape_histo_all — Determine a histogram of features along all threshold values.

Signature

shape_histo_all(Region, Image : : Feature : AbsoluteHisto, RelativeHisto)

Herror T_shape_histo_all(const Hobject Region, const Hobject Image, const Htuple Feature, Htuple* AbsoluteHisto, Htuple* RelativeHisto)

void ShapeHistoAll(const HObject& Region, const HObject& Image, const HTuple& Feature, HTuple* AbsoluteHisto, HTuple* RelativeHisto)

HTuple HRegion::ShapeHistoAll(const HImage& Image, const HString& Feature, HTuple* RelativeHisto) const

HTuple HRegion::ShapeHistoAll(const HImage& Image, const char* Feature, HTuple* RelativeHisto) const

HTuple HRegion::ShapeHistoAll(const HImage& Image, const wchar_t* Feature, HTuple* RelativeHisto) const   ( Windows only)

static void HOperatorSet.ShapeHistoAll(HObject region, HObject image, HTuple feature, out HTuple absoluteHisto, out HTuple relativeHisto)

HTuple HRegion.ShapeHistoAll(HImage image, string feature, out HTuple relativeHisto)

def shape_histo_all(region: HObject, image: HObject, feature: str) -> Tuple[Sequence[Union[int, float]], Sequence[float]]

Description

The operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllshape_histo_all carries out 255 threshold operations within RegionRegionRegionregionregion with the gray values of ImageImageImageimageimage. The entry i in the histogram corresponds to the number of connected components/holes of this image segmented with the threshold i (FeatureFeatureFeaturefeaturefeature = 'connected_components'"connected_components""connected_components""connected_components""connected_components", 'holes'"holes""holes""holes""holes") or the mean value of the feature values of the regions segmented in this way (FeatureFeatureFeaturefeaturefeature = 'convexity'"convexity""convexity""convexity""convexity", 'compactness'"compactness""compactness""compactness""compactness", 'anisometry'"anisometry""anisometry""anisometry""anisometry"), respectively.

Attention

The operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllshape_histo_all expects a region and exactly one gray value image as input. Because of the power of this operator the runtime of shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllshape_histo_all is relatively large!

Note that the operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllshape_histo_all only considers the given RegionRegionRegionregionregion and ignores any previously set domain of the input image ImageImageImageimageimage.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

RegionRegionRegionregionregion (input_object)  region objectHRegionHObjectHObjectHobject

Region in which the features are to be examined.

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte)

Gray value image.

FeatureFeatureFeaturefeaturefeature (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Feature to be examined.

Default: 'connected_components' "connected_components" "connected_components" "connected_components" "connected_components"

List of values: 'anisometry'"anisometry""anisometry""anisometry""anisometry", 'compactness'"compactness""compactness""compactness""compactness", 'connected_components'"connected_components""connected_components""connected_components""connected_components", 'convexity'"convexity""convexity""convexity""convexity", 'holes'"holes""holes""holes""holes"

AbsoluteHistoAbsoluteHistoAbsoluteHistoabsoluteHistoabsolute_histo (output_control)  histogram-array HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Absolute distribution of the feature.

RelativeHistoRelativeHistoRelativeHistorelativeHistorelative_histo (output_control)  histogram-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Relative distribution of the feature.

Example (HDevelop)

* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
    threshold(RegionGray,Seg,i,255)
    connect_and_holes (Seg, NumConnected, _)
    AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
    Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
    RelHisto[i] := AbsHisto[i]/Sum
endfor
  

Example (C)

/* Simulation of shape_histo_all with feature 'connected_components': */
my_shape_histo_all(Hobject Region,Hobject Image,
                 Hlong AbsHisto[], double RelHisto[])
{
  Hlong     i,sum;
  Hobject  RegionGray,Seg;

  reduce_domain(Region,Image,&RegionGray);
  for (i=0; i<256; i++) {
    threshold(RegionGray,&Seg,(double)i,255.0);
    connect_and_holes(Seg,&AbsHisto[i],NULL);
  }
  for (i=0; i<256; i++)
    sum += AbsHisto[i];
  for (i=0; i<256; i++)
    RelHist[i] = (double)AbsHisto[i]/Sum;
}

Example (HDevelop)

* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
    threshold(RegionGray,Seg,i,255)
    connect_and_holes (Seg, NumConnected, _)
    AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
    Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
    RelHisto[i] := AbsHisto[i]/Sum
endfor
  

Example (HDevelop)

* Simulation of shape_histo_all with feature 'connected_components':
* my_shape_histo_all(Region,Image,AbsHisto,RelHisto):
reduce_domain(Region,Image,RegionGray)
for i := 0 to 255 by 1
    threshold(RegionGray,Seg,i,255)
    connect_and_holes (Seg, NumConnected, _)
    AbsHisto[i] := NumConnected
endfor
Sum := 0
for i := 0 to 255 by 1
    Sum := Sum+AbsHisto[i]
endfor
for i := 0 to 255 by 1
    RelHisto[i] := AbsHisto[i]/Sum
endfor
  

Complexity

If F is the area of the input region and N the mean number of connected components the runtime complexity is .

Result

The operator shape_histo_allshape_histo_allShapeHistoAllShapeHistoAllshape_histo_all returns the value 2 ( H_MSG_TRUE) if an image with the defined gray values is entered. The behavior in case of empty input (no input images) is set via the operator set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>), the behavior in case of empty region is set via set_system(::'empty_region_result',<Result>:)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>). If necessary an exception is raised.

Possible Successors

histo_to_threshhisto_to_threshHistoToThreshHistoToThreshhisto_to_thresh, thresholdthresholdThresholdThresholdthreshold, gen_region_histogen_region_histoGenRegionHistoGenRegionHistogen_region_histo

Alternatives

shape_histo_pointshape_histo_pointShapeHistoPointShapeHistoPointshape_histo_point

See also

compactnesscompactnessCompactnessCompactnesscompactness, connectionconnectionConnectionConnectionconnection, connect_and_holesconnect_and_holesConnectAndHolesConnectAndHolesconnect_and_holes, convexityconvexityConvexityConvexityconvexity, count_objcount_objCountObjCountObjcount_obj, entropy_grayentropy_grayEntropyGrayEntropyGrayentropy_gray, gray_histogray_histoGrayHistoGrayHistogray_histo

Module

Foundation