HALCON Reference Manual / Regions / Features Operators

contlength (Operator)

Name

contlength — Contour length of a region.

Synopsis

contlength(Regions : : : ContLength)

Description

The operator contlength calculates the total length of the contour (sum of all connection components of the region) for each region of Regions. The distance between two neighboring contour points parallel to the coordinate axes is rated 1, the distance in the diagonal is rated sqrt(2). If more than one region is passed the numerical values of the contour length are stored in a tuple, the position of a value in the tuple corresponding to the position of the region in the input tuple. In case of an empty region the operator contlength returns the value 0.

Attention

The contour of holes is not calculated.

Parameters

Regions (input_object) region(-array) object
Region(s) to be examined.

ContLength (output_control) real(-array) (real)
Contour length of the input region(s).
Assertion: ContLength >= 0

Example (Syntax: C++)

#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;

int main (int argc, char *argv[])
{
  if (argc < 2)
  {
    cout << "Usage: " << argv[0] << " <# of regions> " << endl;
    return (-1);
  }

  HWindow        w;
  HRegionArray   reg;

  int NumOfElements = atoi (argv[1]);

  cout << "Draw " << NumOfElements << " regions " << endl;

  for (int i=0; i < NumOfElements; i++)
  {
    reg[i] = w.DrawRegion ();
  }

  Tuple circ = reg.Circularity ();
  Tuple cont = reg.Contlength ();

  for (i = 0; i < NumOfElements; i++)
  {
    cout << "Circularity of " << i+1 << ". region = " << circ[i].D();
    cout << "\t\t Contour Length of" << i+1 <<
            ". region = " << cont[i].D() << endl;
  }

  w.Click ();
  return(0);
}

Result

The operator contlength returns the value 2 (H_MSG_TRUE) if the input is not empty. The behavior in case of empty input (no input regions available) is set via the operator set_system('no_object_result',<Result>). If necessary an exception is raised.

Parallelization Information

contlength is reentrant and automatically parallelized (on tuple level).

Possible Predecessors

threshold, regiongrowing, connection

Possible Successors

get_region_contour

Alternatives

compactness

See also

area_center, get_region_contour

Module

Foundation


HALCON Reference Manual / Regions / Features Operators
Version 9.0.2 Copyright © 1996-2010 MVTec Software GmbH