select_shape_protoselect_shape_protoSelectShapeProtoSelectShapeProtoselect_shape_proto (算子名称)
名称
select_shape_protoselect_shape_protoSelectShapeProtoSelectShapeProtoselect_shape_proto — Choose regions having a certain relation to each other.
参数签名
Herror select_shape_proto(const Hobject 区域, const Hobject Pattern, Hobject* SelectedRegions, const char* Feature, double Min, double Max)
Herror T_select_shape_proto(const Hobject 区域, const Hobject Pattern, Hobject* SelectedRegions, const Htuple Feature, const Htuple Min, const Htuple Max)
void SelectShapeProto(const HObject& 区域, 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
HRegion HRegion::SelectShapeProto(const HRegion& Pattern, const wchar_t* Feature, double Min, double Max) const
(
Windows only)
static void HOperatorSet.SelectShapeProto(HObject 区域, 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)
def select_shape_proto(区域: HObject, pattern: HObject, feature: MaybeSequence[str], min: Union[int, float], max: Union[int, float]) -> HObject
描述
该算子 select_shape_protoselect_shape_protoSelectShapeProtoSelectShapeProtoSelectShapeProtoselect_shape_proto selects regions based on
certain relations between the regions. Every region from
区域区域区域区域区域区域 is compared to the union of regions from
PatternPatternPatternPatternpatternpattern. The limits (MinMinMinMinminmin and MaxMaxMaxMaxmaxmax) are
specified absolutely or in percent (0..100), depending on the
feature. Possible values for FeatureFeatureFeatureFeaturefeaturefeature are:
- 'distance_dilate'
The minimum distance in the maximum norm from the edge of
PatternPatternPatternPatternpatternpattern to the edge of every region from 区域区域区域区域区域区域
is determined (see distance_rr_min_dildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDilDistanceRrMinDildistance_rr_min_dil).
- 'distance_contour'
The minimum Euclidean distance from the edge of PatternPatternPatternPatternpatternpattern to
the edge of every region from 区域区域区域区域区域区域 is determined. (see
distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMindistance_rr_min).
- 'distance_center'
The Euclidean distance from the center of PatternPatternPatternPatternpatternpattern to the
center of every region from 区域区域区域区域区域区域 is determined.
- 'covers'
It is examined how well the region PatternPatternPatternPatternpatternpattern fits into the
regions from 区域区域区域区域区域区域. If there is no shift so that
PatternPatternPatternPatternpatternpattern is a subset of 区域区域区域区域区域区域 the overlap is 0.
If PatternPatternPatternPatternpatternpattern corresponds to the region after a corresponding
shift the overlap is 100. Otherwise the area of the opening of
区域区域区域区域区域区域 with PatternPatternPatternPatternpatternpattern is put into relation with the
area of 区域区域区域区域区域区域 (in percent).
- 'fits'
It is examined whether PatternPatternPatternPatternpatternpattern can be shifted in such a way
that it fits in 区域区域区域区域区域区域. If this is possible the
corresponding region is copied from 区域区域区域区域区域区域. The
parameters MinMinMinMinminmin and MaxMaxMaxMaxmaxmax are ignored.
- 'overlaps_abs'
The area of the intersection of PatternPatternPatternPatternpatternpattern and every region in
区域区域区域区域区域区域 is computed.
- 'overlaps_rel'
The area of the intersection of PatternPatternPatternPatternpatternpattern and every region in
区域区域区域区域区域区域 is computed. The relative overlap is the ratio of
the area of the intersection and the are of the respective region in
区域区域区域区域区域区域 (in percent).
运行信息
- 多线程类型:可重入(与非独占操作符并行运行)。
- 多线程作用域:全局(可以从任何线程调用)。
- 未经并行化处理。
参数表
区域区域区域区域区域区域 (input_object) region(-array) → objectHRegionHObjectHRegionHobject
Regions to be examined.
PatternPatternPatternPatternpatternpattern (input_object) region(-array) → objectHRegionHObjectHRegionHobject
Region compared to 区域区域区域区域区域区域.
SelectedRegionsSelectedRegionsSelectedRegionsSelectedRegionsselectedRegionsselected_regions (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
Regions fulfilling the condition.
FeatureFeatureFeatureFeaturefeaturefeature (input_control) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Shape features to be checked.
Default:
'covers'
"covers"
"covers"
"covers"
"covers"
"covers"
List of values:
'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 → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Lower border of feature.
Default:
50.0
Suggested values:
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
Value range:
0.0
≤
Min
Min
Min
Min
min
min
Minimum increment:
0.001
Recommended increment:
5.0
MaxMaxMaxMaxmaxmax (input_control) number → HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Upper border of the feature.
Default:
100.0
Suggested values:
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
Value range:
0.0
≤
Max
Max
Max
Max
max
max
Minimum increment:
0.001
Recommended increment:
5.0
Example (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);
}
例程 (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);
Example (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);
}
Example (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);
}
Example (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);
}
结果
该算子 select_shape_protoselect_shape_protoSelectShapeProtoSelectShapeProtoSelectShapeProtoselect_shape_proto 返回值 2 (
H_MSG_TRUE)
if
the input is not empty. The behavior in case of empty input (no
input regions available) is set via 该算子
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>)set_system("no_object_result",<Result>). The behavior in
case of empty region (the region is the empty set) is set via
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>)set_system("empty_region_result",<Result>). If necessary an
exception is raised.
可能的前置算子
connectionconnectionConnectionConnectionConnectionconnection,
draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region,
gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1,
gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2GenRectangle2gen_rectangle2,
gen_ellipsegen_ellipseGenEllipseGenEllipseGenEllipsegen_ellipse
可能的后置算子
select_grayselect_graySelectGraySelectGraySelectGrayselect_gray,
shape_transshape_transShapeTransShapeTransShapeTransshape_trans,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain,
count_objcount_objCountObjCountObjCountObjcount_obj
可替代算子
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape
参考其它
openingopeningOpeningOpeningOpeningopening,
erosion1erosion1Erosion1Erosion1Erosion1erosion1,
distance_rr_min_dildistance_rr_min_dilDistanceRrMinDilDistanceRrMinDilDistanceRrMinDildistance_rr_min_dil,
distance_rr_mindistance_rr_minDistanceRrMinDistanceRrMinDistanceRrMindistance_rr_min
模块
Foundation