Name
select_shape_protoselect_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)
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_protoSelectShapeProtoSelectShapeProtoSelectShapeProto setzt zwei Regionen zueinander in
Beziehung. Es wird jeweils die i-te Region aus RegionsRegionsRegionsRegionsregions mit
der Vereinigung der Regionen aus PatternPatternPatternPatternpattern verglichen. Die
Grenzen (MinMinMinMinmin und MaxMaxMaxMaxmax) werden je nach Merkmal
absolut oder in Prozent (0..100) angegeben. Mögliche Werte für
FeatureFeatureFeatureFeaturefeature sind:
- 'distance_dilate'
Der minimale Abstand in der Maximumsnorm vom Rand von
PatternPatternPatternPatternpattern zum Rand jeder Region aus RegionsRegionsRegionsRegionsregions wird
bestimmt (vgl. distance_rr_min_dildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDilDistanceRrMinDil).
- 'distance_contour'
Der minimale euklidsche Abstand vom Rand von PatternPatternPatternPatternpattern zum
Rand jeder Region aus RegionsRegionsRegionsRegionsregions wird bestimmt.
(vgl. distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMin).
- 'distance_center'
Der euklidsche Abstand vom Schwerpunkt von PatternPatternPatternPatternpattern zum
Schwerpunkt jeder Region aus RegionsRegionsRegionsRegionsregions wird bestimmt.
- 'covers'
Es wird geprüft wie gut die Region PatternPatternPatternPatternpattern in die Regionen
aus RegionsRegionsRegionsRegionsregions passt. Wenn es keine Verschiebung gibt, sodass
PatternPatternPatternPatternpattern eine Teilmenge von RegionsRegionsRegionsRegionsregions ist, so ist die
Überdeckung 0. Wenn PatternPatternPatternPatternpattern nach einer entsprechenden
Verschiebung mit der Region übereinstimmt, ist die Überdeckung
100. Ansonsten wird die Fläche des Opening von RegionsRegionsRegionsRegionsregions
mit PatternPatternPatternPatternpattern mit der Fläche von RegionsRegionsRegionsRegionsregions ins
Verhältnis gesetzt (in Prozent).
- 'fits'
Es wird getestet, ob PatternPatternPatternPatternpattern so verschoben werden kann,
dass es in RegionsRegionsRegionsRegionsregions passt. Wenn dies möglich ist, wird die
zugehörige Region aus RegionsRegionsRegionsRegionsregions kopiert. Die Parameter
MinMinMinMinmin und MaxMaxMaxMaxmax haben hier keine Bedeutung.
- 'overlaps_abs'
Die Fläche der Schnittmenge von PatternPatternPatternPatternpattern und jeder Region
in RegionsRegionsRegionsRegionsregions wird berechnet.
- 'overlaps_rel'
Die Fläche der Schnittmenge von PatternPatternPatternPatternpattern und jeder Region
in RegionsRegionsRegionsRegionsregions wird berechnet. Die relative Überlappung
ergibt sich aus dem Verhältnis der Fläche der Schnittmenge und der
Fläche der jeweiligen Region aus RegionsRegionsRegionsRegionsregions (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"
Werteliste: 'covers'"covers""covers""covers""covers", 'distance_center'"distance_center""distance_center""distance_center""distance_center", 'distance_contour'"distance_contour""distance_contour""distance_contour""distance_contour", 'distance_dilate'"distance_dilate""distance_dilate""distance_dilate""distance_dilate", 'fits'"fits""fits""fits""fits", 'overlaps_abs'"overlaps_abs""overlaps_abs""overlaps_abs""overlaps_abs", 'overlaps_rel'"overlaps_rel""overlaps_rel""overlaps_rel""overlaps_rel"
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
Minimale Schrittweite: 0.001
Empfohlene Schrittweite: 5.0
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
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);
}
select_shape_protoselect_shape_protoSelectShapeProtoSelectShapeProtoSelectShapeProto 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>)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>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>) bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
connectionconnectionConnectionConnectionConnection,
draw_regiondraw_regionDrawRegionDrawRegionDrawRegion,
gen_circlegen_circleGenCircleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1,
gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2GenRectangle2,
gen_ellipsegen_ellipseGenEllipseGenEllipseGenEllipse
select_grayselect_graySelectGraySelectGraySelectGray,
shape_transshape_transShapeTransShapeTransShapeTrans,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain,
count_objcount_objCountObjCountObjCountObj
select_shapeselect_shapeSelectShapeSelectShapeSelectShape
openingopeningOpeningOpeningOpening,
erosion1erosion1Erosion1Erosion1Erosion1,
distance_rr_min_dildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDilDistanceRrMinDil,
distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMin
Foundation