Operator Reference

gray_projectionsT_gray_projectionsGrayProjectionsGrayProjectionsgray_projections (Operator)

gray_projectionsT_gray_projectionsGrayProjectionsGrayProjectionsgray_projections — Calculate horizontal and vertical gray-value projections.

Signature

gray_projections(Region, Image : : Mode : HorProjection, VertProjection)

Herror T_gray_projections(const Hobject Region, const Hobject Image, const Htuple Mode, Htuple* HorProjection, Htuple* VertProjection)

void GrayProjections(const HObject& Region, const HObject& Image, const HTuple& Mode, HTuple* HorProjection, HTuple* VertProjection)

HTuple HImage::GrayProjections(const HRegion& Region, const HString& Mode, HTuple* VertProjection) const

HTuple HImage::GrayProjections(const HRegion& Region, const char* Mode, HTuple* VertProjection) const

HTuple HImage::GrayProjections(const HRegion& Region, const wchar_t* Mode, HTuple* VertProjection) const   ( Windows only)

HTuple HRegion::GrayProjections(const HImage& Image, const HString& Mode, HTuple* VertProjection) const

HTuple HRegion::GrayProjections(const HImage& Image, const char* Mode, HTuple* VertProjection) const

HTuple HRegion::GrayProjections(const HImage& Image, const wchar_t* Mode, HTuple* VertProjection) const   ( Windows only)

static void HOperatorSet.GrayProjections(HObject region, HObject image, HTuple mode, out HTuple horProjection, out HTuple vertProjection)

HTuple HImage.GrayProjections(HRegion region, string mode, out HTuple vertProjection)

HTuple HRegion.GrayProjections(HImage image, string mode, out HTuple vertProjection)

def gray_projections(region: HObject, image: HObject, mode: str) -> Tuple[Sequence[float], Sequence[float]]

Description

gray_projectionsgray_projectionsGrayProjectionsGrayProjectionsgray_projections calculates the horizontal and vertical gray-value projections, i.e., the mean values in the horizontal and vertical direction of the gray values of the input image ImageImageImageimageimage within the input region RegionRegionRegionregionregion.

If ModeModeModemodemode = 'simple'"simple""simple""simple""simple" is selected the projection is performed in the direction of the coordinate axes of the image, i.e.: Here, (r',c') denotes the upper left corner of the smallest enclosing axis-parallel rectangle of the input region (see smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1), and n(x) denotes the number of region points in the corresponding row r+r' or column c+c'. Hence, the horizontal projection returns a one-dimensional function that reflects the vertical gray value changes. Likewise, the vertical projection returns a function that reflects the horizontal gray value changes.

If ModeModeModemodemode = 'rectangle'"rectangle""rectangle""rectangle""rectangle"is selected the projection is performed in the direction of the major axes of the smallest enclosing rectangle of arbitrary orientation of the input region (see smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2). Here, the horizontal projection direction corresponds to the larger axis, while the vertical direction corresponds to the smaller axis. In this mode, all gray values within the smallest enclosing rectangle of arbitrary orientation of the input region are used to compute the projections.

Attention

The operator gray_projectionsgray_projectionsGrayProjectionsGrayProjectionsgray_projections only considers the given RegionRegionRegionregionregion and ignores any previously set domain of the input image ImageImageImageimageimage.

If n(x) = 0, i.e., if there are no region points in the corresponding row r+r' or column c+c', the respective value of HorProjectionHorProjectionHorProjectionhorProjectionhor_projection or VertProjectionVertProjectionVertProjectionvertProjectionvert_projection is set to -1.

gray_projectionsgray_projectionsGrayProjectionsGrayProjectionsgray_projections can be executed on an OpenCL device for the 'simple'"simple""simple""simple""simple" mode if the OpenCL device supports the cl_khr_global_int32_base_atomics OpenCL extension. For processing images of type real, the OpenCL device must support the cl_khr_fp64 and cl_khr_int64_base_atomics extensions.

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).
  • Processed without parallelization.

Parameters

RegionRegionRegionregionregion (input_object)  region objectHRegionHObjectHObjectHobject

Region to be processed.

ImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHObjectHobject (byte* / int2* / uint2* / real*) *allowed for compute devices

Grayvalues for projections.

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

Method to compute the projections.

Default: 'simple' "simple" "simple" "simple" "simple"

List of values: 'rectangle'"rectangle""rectangle""rectangle""rectangle", 'simple'"simple""simple""simple""simple"

List of values (for compute devices): 'simple'"simple""simple""simple""simple"

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

Horizontal projection.

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

Vertical projection.

Module

1D Metrology