Name
select_shape_protoselect_shape_protoSelectShapeProtoselect_shape_protoSelectShapeProtoSelectShapeProto — Auswählen von Regionen, die in einer bestimmten Beziehung zueinander stehen.
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
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)
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).
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Zu untersuchende Regionen.
Regionen, die die Bedingung erfüllen.
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
#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);
}
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);
#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);
}
#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);
}
#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);
}
#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);
}
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.
connectionconnectionConnectionconnectionConnectionConnection,
draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion,
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1,
gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2,
gen_ellipsegen_ellipseGenEllipsegen_ellipseGenEllipseGenEllipse
select_grayselect_graySelectGrayselect_graySelectGraySelectGray,
shape_transshape_transShapeTransshape_transShapeTransShapeTrans,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain,
count_objcount_objCountObjcount_objCountObjCountObj
select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape
openingopeningOpeningopeningOpeningOpening,
erosion1erosion1Erosion1erosion1Erosion1Erosion1,
distance_rr_min_dildistance_rr_min_dilDistanceRrMinDildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDil,
distance_rr_mindistance_rr_minDistanceRrMindistance_rr_minDistanceRrMinDistanceRrMin
Foundation