KlassenKlassenKlassenKlassen | | | | Operatoren

boundaryboundaryBoundaryboundaryBoundaryBoundary (Operator)

Name

boundaryboundaryBoundaryboundaryBoundaryBoundary — Reduzieren einer Region auf deren Rand.

Signatur

boundary(Region : RegionBorder : BoundaryType : )

Herror boundary(const Hobject Region, Hobject* RegionBorder, const char* BoundaryType)

Herror T_boundary(const Hobject Region, Hobject* RegionBorder, const Htuple BoundaryType)

Herror boundary(Hobject Region, Hobject* RegionBorder, const HTuple& BoundaryType)

HRegion HRegion::Boundary(const HTuple& BoundaryType) const

HRegionArray HRegionArray::Boundary(const HTuple& BoundaryType) const

void Boundary(const HObject& Region, HObject* RegionBorder, const HTuple& BoundaryType)

HRegion HRegion::Boundary(const HString& BoundaryType) const

HRegion HRegion::Boundary(const char* BoundaryType) const

void HOperatorSetX.Boundary(
[in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*RegionBorder, [in] VARIANT BoundaryType)

IHRegionX* HRegionX.Boundary([in] BSTR BoundaryType)

static void HOperatorSet.Boundary(HObject region, out HObject regionBorder, HTuple boundaryType)

HRegion HRegion.Boundary(string boundaryType)

Beschreibung

boundaryboundaryBoundaryboundaryBoundaryBoundary berechnet die Kontur einer Region mit Hilfe morphologischer Operationen. Durch den Parameter BoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeboundaryType wird zwischen drei Arten der Randerzeugung unterschieden:

'inner', 'inner_filled' und 'outer'.

boundaryboundaryBoundaryboundaryBoundaryBoundary berechnet für jede Region die zugehörige Kontur. Die Ergebnisregionen bestehen nur aus einem minimalen Rand der Eingaberegionen. Bei dem Parameterwert 'inner' liegt die Kontur innerhalb der Eingaberegionen, bei 'outer' außerhalb. Im Modus 'inner_filled' werden zusätzlich Hohlflächen unterdrückt.

Parallelisierung

Parameter

RegionRegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Regionen, die auf den Rand reduziert werden.

RegionBorderRegionBorderRegionBorderRegionBorderRegionBorderregionBorder (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Ergebnisregionen.

BoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeboundaryType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Art der Regionenrandes.

Defaultwert: 'inner' "inner" "inner" "inner" "inner" "inner"

Werteliste: 'inner'"inner""inner""inner""inner""inner", 'inner_filled'"inner_filled""inner_filled""inner_filled""inner_filled""inner_filled", 'outer'"outer""outer""outer""outer""outer"

Beispiel (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

Beispiel (C)

/* Intersections of two circles: */
gen_circle(&Circle1,200.0,100.0,100.5);
gen_circle(&Circle2,200.0,150.0,100.5);
boundary(Circle1,&Margin1,"inner");
boundary(Circle2,&Margin2,"inner");
intersection(Margin1,Margin2,&Intersections);
connection(Intersections,&Single);
T_area_center(Single,NULL,&Rows,&Columns);

/* simulation of Mode 'inner' */
void inner(Hobject Region, Hobject *Border)
{
  Hobject  Smaller;
  erosion_circle(Region,&Smaller,1.5);
  difference(Region,Smaller,Border);
  clear_obj(Smaller);
}

Beispiel (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

Beispiel (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

Beispiel (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

Beispiel (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

Komplexität

Sei F die Fläche einer Eingaberegion, dann ist die Laufzeitkomplexität für ein Objekt:

Ergebnis

Bei korrekter Parametrisierung liefert die Funktion boundaryboundaryBoundaryboundaryBoundaryBoundary den Wert 2 (H_MSG_TRUE). Das Funktionsverhalten für die beiden Fälle leere und keine Eingaberegion lässt sich wie folgt kontrollieren:

Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdthresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionconnectionConnectionConnection, union1union1Union1union1Union1Union1, watershedswatershedsWatershedswatershedsWatershedsWatersheds, class_ndim_normclass_ndim_normClassNdimNormclass_ndim_normClassNdimNormClassNdimNorm

Nachfolger

reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter, connectionconnectionConnectionconnectionConnectionConnection

Alternativen

dilation_circledilation_circleDilationCircledilation_circleDilationCircleDilationCircle, erosion_circleerosion_circleErosionCircleerosion_circleErosionCircleErosionCircle, differencedifferenceDifferencedifferenceDifferenceDifference

Siehe auch

fill_upfill_upFillUpfill_upFillUpFillUp

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren