KlassenKlassenKlassenKlassen | | | | Operatoren

select_shape_protoselect_shape_protoSelectShapeProtoselect_shape_protoSelectShapeProtoSelectShapeProto (Operator)

Name

select_shape_protoselect_shape_protoSelectShapeProtoselect_shape_protoSelectShapeProtoSelectShapeProto — Auswählen von Regionen, die in einer bestimmten Beziehung zueinander stehen.

Signatur

select_shape_proto(Regions, Pattern : SelectedRegions : Feature, Min, Max : )

Herror select_shape_proto(const Hobject Regions, const Hobject Pattern, Hobject* SelectedRegions, const char* Feature, double Min, double Max)

Herror T_select_shape_proto(const Hobject Regions, const Hobject Pattern, Hobject* SelectedRegions, const Htuple Feature, const Htuple Min, const Htuple Max)

Herror select_shape_proto(Hobject Regions, Hobject Pattern, Hobject* SelectedRegions, const HTuple& Feature, const HTuple& Min, const HTuple& Max)

HRegion HRegion::SelectShapeProto(const HRegion& Pattern, const HTuple& Feature, const HTuple& Min, const HTuple& Max) const

HRegionArray HRegionArray::SelectShapeProto(const HRegionArray& Pattern, const HTuple& Feature, const HTuple& Min, const HTuple& Max) const

void SelectShapeProto(const HObject& Regions, const HObject& Pattern, HObject* SelectedRegions, const HTuple& Feature, const HTuple& Min, const HTuple& Max)

HRegion HRegion::SelectShapeProto(const HRegion& Pattern, const HTuple& Feature, const HTuple& Min, const HTuple& Max) const

HRegion HRegion::SelectShapeProto(const HRegion& Pattern, const HString& Feature, double Min, double Max) const

HRegion HRegion::SelectShapeProto(const HRegion& Pattern, const char* Feature, double Min, double Max) const

void HOperatorSetX.SelectShapeProto(
[in] IHUntypedObjectX* Regions, [in] IHUntypedObjectX* Pattern, [out] IHUntypedObjectX*SelectedRegions, [in] VARIANT Feature, [in] VARIANT Min, [in] VARIANT Max)

IHRegionX* HRegionX.SelectShapeProto(
[in] IHRegionX* Pattern, [in] VARIANT Feature, [in] VARIANT Min, [in] VARIANT Max)

static void HOperatorSet.SelectShapeProto(HObject regions, HObject pattern, out HObject selectedRegions, HTuple feature, HTuple min, HTuple max)

HRegion HRegion.SelectShapeProto(HRegion pattern, HTuple feature, HTuple min, HTuple max)

HRegion HRegion.SelectShapeProto(HRegion pattern, string feature, double min, double max)

Beschreibung

select_shape_protoselect_shape_protoSelectShapeProtoselect_shape_protoSelectShapeProtoSelectShapeProto setzt zwei Regionen zueinander in Beziehung. Es wird jeweils die i-te Region aus RegionsRegionsRegionsRegionsRegionsregions mit der Vereinigung der Regionen aus PatternPatternPatternPatternPatternpattern verglichen. Die Grenzen (MinMinMinMinMinmin und MaxMaxMaxMaxMaxmax) werden je nach Merkmal absolut oder in Prozent (0..100) angegeben. Mögliche Werte für FeatureFeatureFeatureFeatureFeaturefeature sind:

'distance_dilate'

Der minimale Abstand in der Maximumsnorm vom Rand von PatternPatternPatternPatternPatternpattern zum Rand jeder Region aus RegionsRegionsRegionsRegionsRegionsregions wird bestimmt (vgl. distance_rr_min_dildistance_rr_min_dilDistanceRrMinDildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDil).

'distance_contour'

Der minimale euklidsche Abstand vom Rand von PatternPatternPatternPatternPatternpattern zum Rand jeder Region aus RegionsRegionsRegionsRegionsRegionsregions wird bestimmt. (vgl. distance_rr_mindistance_rr_minDistanceRrMindistance_rr_minDistanceRrMinDistanceRrMin).

'distance_center'

Der euklidsche Abstand vom Schwerpunkt von PatternPatternPatternPatternPatternpattern zum Schwerpunkt jeder Region aus RegionsRegionsRegionsRegionsRegionsregions wird bestimmt.

'covers'

Es wird geprüft wie gut die Region PatternPatternPatternPatternPatternpattern in die Regionen aus RegionsRegionsRegionsRegionsRegionsregions passt. Wenn es keine Verschiebung gibt, sodass PatternPatternPatternPatternPatternpattern eine Teilmenge von RegionsRegionsRegionsRegionsRegionsregions ist, so ist die Überdeckung 0. Wenn PatternPatternPatternPatternPatternpattern nach einer entsprechenden Verschiebung mit der Region übereinstimmt, ist die Überdeckung 100. Ansonsten wird die Fläche des Opening von RegionsRegionsRegionsRegionsRegionsregions mit PatternPatternPatternPatternPatternpattern mit der Fläche von RegionsRegionsRegionsRegionsRegionsregions ins Verhältnis gesetzt (in Prozent).

'fits'

Es wird getestet, ob PatternPatternPatternPatternPatternpattern so verschoben werden kann, dass es in RegionsRegionsRegionsRegionsRegionsregions passt. Wenn dies möglich ist, wird die zugehörige Region aus RegionsRegionsRegionsRegionsRegionsregions kopiert. Die Parameter MinMinMinMinMinmin und MaxMaxMaxMaxMaxmax haben hier keine Bedeutung.

'overlaps_abs'

Die Fläche der Schnittmenge von PatternPatternPatternPatternPatternpattern und jeder Region in RegionsRegionsRegionsRegionsRegionsregions wird berechnet.

'overlaps_rel'

Die Fläche der Schnittmenge von PatternPatternPatternPatternPatternpattern und jeder Region in RegionsRegionsRegionsRegionsRegionsregions wird berechnet. Die relative Überlappung ergibt sich aus dem Verhältnis der Fläche der Schnittmenge und der Fläche der jeweiligen Region aus RegionsRegionsRegionsRegionsRegionsregions (in Prozent).

Parallelisierung

Parameter

RegionsRegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Zu untersuchende Regionen.

PatternPatternPatternPatternPatternpattern (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Region, die mit RegionsRegionsRegionsRegionsRegionsregions verglichen wird.

SelectedRegionsSelectedRegionsSelectedRegionsSelectedRegionsSelectedRegionsselectedRegions (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Regionen, die die Bedingung erfüllen.

FeatureFeatureFeatureFeatureFeaturefeature (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Zu testende Formmerkmale.

Defaultwert: 'covers' "covers" "covers" "covers" "covers" "covers"

Werteliste: 'covers'"covers""covers""covers""covers""covers", 'distance_center'"distance_center""distance_center""distance_center""distance_center""distance_center", 'distance_contour'"distance_contour""distance_contour""distance_contour""distance_contour""distance_contour", 'distance_dilate'"distance_dilate""distance_dilate""distance_dilate""distance_dilate""distance_dilate", 'fits'"fits""fits""fits""fits""fits", 'overlaps_abs'"overlaps_abs""overlaps_abs""overlaps_abs""overlaps_abs""overlaps_abs", 'overlaps_rel'"overlaps_rel""overlaps_rel""overlaps_rel""overlaps_rel""overlaps_rel"

MinMinMinMinMinmin (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Untere Grenze des Merkmals.

Defaultwert: 50.0

Wertevorschläge: 0.0, 1.0, 5.0, 10.0, 20.0, 30.0, 50.0, 60.0, 70.0, 80.0, 90.0, 95.0, 99.0, 100.0, 200.0, 400.0

Typischer Wertebereich: 0.0 ≤ Min Min Min Min Min min

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 5.0

MaxMaxMaxMaxMaxmax (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Obere Grenze des Merkmals.

Defaultwert: 100.0

Wertevorschläge: 0.0, 10.0, 20.0, 30.0, 50.0, 60.0, 70.0, 80.0, 90.0, 95.0, 99.0, 100.0, 200.0, 300.0, 400.0

Typischer Wertebereich: 0.0 ≤ Max Max Max Max Max max

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 5.0

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

#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] << " <radius of circle>" << endl;
    exit (1);
  }

  double   rad = atof (argv[1]);
  HImage   img ("monkey");
  HWindow  w;

  img.Display (w);

  HRegion       circ = HRegion::GenCircle (100, 100, rad);
  HRegionArray  reg  = img.Regiongrowing (3, 3, 5, 0);
  HRegionArray  seg  = reg.SelectShapeProto (circ, "fits", 0, 0);

  w.SetColor  ("red");
  seg.Display (w);
  w.Click ();
  return(0);
}

Beispiel (C)

regiongrowing(Image,&Seg,3,3,5.0,0);
gen_circle(&C,100.0,100.0,MinRadius);
select_shape_proto(Seg,C,"fits",0.0,0.0);

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

#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] << " <radius of circle>" << endl;
    exit (1);
  }

  double   rad = atof (argv[1]);
  HImage   img ("monkey");
  HWindow  w;

  img.Display (w);

  HRegion       circ = HRegion::GenCircle (100, 100, rad);
  HRegionArray  reg  = img.Regiongrowing (3, 3, 5, 0);
  HRegionArray  seg  = reg.SelectShapeProto (circ, "fits", 0, 0);

  w.SetColor  ("red");
  seg.Display (w);
  w.Click ();
  return(0);
}

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

#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] << " <radius of circle>" << endl;
    exit (1);
  }

  double   rad = atof (argv[1]);
  HImage   img ("monkey");
  HWindow  w;

  img.Display (w);

  HRegion       circ = HRegion::GenCircle (100, 100, rad);
  HRegionArray  reg  = img.Regiongrowing (3, 3, 5, 0);
  HRegionArray  seg  = reg.SelectShapeProto (circ, "fits", 0, 0);

  w.SetColor  ("red");
  seg.Display (w);
  w.Click ();
  return(0);
}

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

#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] << " <radius of circle>" << endl;
    exit (1);
  }

  double   rad = atof (argv[1]);
  HImage   img ("monkey");
  HWindow  w;

  img.Display (w);

  HRegion       circ = HRegion::GenCircle (100, 100, rad);
  HRegionArray  reg  = img.Regiongrowing (3, 3, 5, 0);
  HRegionArray  seg  = reg.SelectShapeProto (circ, "fits", 0, 0);

  w.SetColor  ("red");
  seg.Display (w);
  w.Click ();
  return(0);
}

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

#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] << " <radius of circle>" << endl;
    exit (1);
  }

  double   rad = atof (argv[1]);
  HImage   img ("monkey");
  HWindow  w;

  img.Display (w);

  HRegion       circ = HRegion::GenCircle (100, 100, rad);
  HRegionArray  reg  = img.Regiongrowing (3, 3, 5, 0);
  HRegionArray  seg  = reg.SelectShapeProto (circ, "fits", 0, 0);

  w.SetColor  ("red");
  seg.Display (w);
  w.Click ();
  return(0);
}

Ergebnis

select_shape_protoselect_shape_protoSelectShapeProtoselect_shape_protoSelectShapeProtoSelectShapeProto liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingaberegionen vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Das Verhalten bei einer leeren Region (Region ist die leere Menge) wird mit set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>) bestimmt. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

connectionconnectionConnectionconnectionConnectionConnection, draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion, gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle, gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1, gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2, gen_ellipsegen_ellipseGenEllipsegen_ellipseGenEllipseGenEllipse

Nachfolger

select_grayselect_graySelectGrayselect_graySelectGraySelectGray, shape_transshape_transShapeTransshape_transShapeTransShapeTrans, reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, count_objcount_objCountObjcount_objCountObjCountObj

Alternativen

select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape

Siehe auch

openingopeningOpeningopeningOpeningOpening, erosion1erosion1Erosion1erosion1Erosion1Erosion1, distance_rr_min_dildistance_rr_min_dilDistanceRrMinDildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDil, distance_rr_mindistance_rr_minDistanceRrMindistance_rr_minDistanceRrMinDistanceRrMin

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren