contlength contlength Contlength Contlength contlength (Operator)
名称
contlength contlength Contlength Contlength contlength — 区域的轮廓长度。
签名
def contlength (regions : HObject) -> Sequence[float]
def contlength_s (regions : HObject) -> float
描述
The operator contlength contlength Contlength Contlength Contlength contlength calculates the total length of the contour
(sum of all connection components of the region) for each region of
Regions Regions Regions Regions regions regions . The distance between two neighboring contour
points parallel to the coordinate axes is rated 1, the distance in the diagonal
is rated
.
In the documentation of this chapter (Regions / Features ), you can
find an image illustrating regions which vary in the length of their
contours.
If more than one region is passed the numerical values of the
contour length are stored in a tuple, the position of a value in the tuple
corresponding to the position of the region in the input tuple. In case of an
empty region the operator contlength contlength Contlength Contlength Contlength contlength returns the value 0.
注意
The contour of holes is not calculated.
执行信息
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
参数
Regions Regions Regions Regions regions regions (input_object) region(-array) → object HRegion HObject HRegion Hobject
Region(s) to be examined.
ContLength ContLength ContLength ContLength contLength cont_length (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Contour length of the input region(s).
Assertion:
ContLength >= 0
示例 (C++)
#include "HalconCpp.h"
#include <iostream>
using namespace HalconCpp;
int main (int argc, char *argv[])
{
HWindow w(10,10,512,512);
HRegion reg;
int NumOfElements = 3;
std::cout << "Draw " << NumOfElements << " regions " << std::endl;
GenEmptyObj(®);
for (int i=0; i < NumOfElements; i++)
{
reg = reg.ConcatObj(w.DrawRegion());
}
HTuple circ = reg.Circularity ();
HTuple cont = reg.Contlength ();
for (int i = 0; i < NumOfElements; i++)
{
std::cout << "region " << i+1 << ": \tcircularity = " << circ[i].D() <<
"\tcontour length =" << cont[i].D() << std::endl;
}
std::cout << "Click into the graphics window to end." << std::endl;
w.Click ();
return(0);
}
示例 (C++)
#include "HalconCpp.h"
#include <iostream>
using namespace HalconCpp;
int main (int argc, char *argv[])
{
HWindow w(10,10,512,512);
HRegion reg;
int NumOfElements = 3;
std::cout << "Draw " << NumOfElements << " regions " << std::endl;
GenEmptyObj(®);
for (int i=0; i < NumOfElements; i++)
{
reg = reg.ConcatObj(w.DrawRegion());
}
HTuple circ = reg.Circularity ();
HTuple cont = reg.Contlength ();
for (int i = 0; i < NumOfElements; i++)
{
std::cout << "region " << i+1 << ": \tcircularity = " << circ[i].D() <<
"\tcontour length =" << cont[i].D() << std::endl;
}
std::cout << "Click into the graphics window to end." << std::endl;
w.Click ();
return(0);
}
示例 (C++)
#include "HalconCpp.h"
#include <iostream>
using namespace HalconCpp;
int main (int argc, char *argv[])
{
HWindow w(10,10,512,512);
HRegion reg;
int NumOfElements = 3;
std::cout << "Draw " << NumOfElements << " regions " << std::endl;
GenEmptyObj(®);
for (int i=0; i < NumOfElements; i++)
{
reg = reg.ConcatObj(w.DrawRegion());
}
HTuple circ = reg.Circularity ();
HTuple cont = reg.Contlength ();
for (int i = 0; i < NumOfElements; i++)
{
std::cout << "region " << i+1 << ": \tcircularity = " << circ[i].D() <<
"\tcontour length =" << cont[i].D() << std::endl;
}
std::cout << "Click into the graphics window to end." << std::endl;
w.Click ();
return(0);
}
示例 (C++)
#include "HalconCpp.h"
#include <iostream>
using namespace HalconCpp;
int main (int argc, char *argv[])
{
HWindow w(10,10,512,512);
HRegion reg;
int NumOfElements = 3;
std::cout << "Draw " << NumOfElements << " regions " << std::endl;
GenEmptyObj(®);
for (int i=0; i < NumOfElements; i++)
{
reg = reg.ConcatObj(w.DrawRegion());
}
HTuple circ = reg.Circularity ();
HTuple cont = reg.Contlength ();
for (int i = 0; i < NumOfElements; i++)
{
std::cout << "region " << i+1 << ": \tcircularity = " << circ[i].D() <<
"\tcontour length =" << cont[i].D() << std::endl;
}
std::cout << "Click into the graphics window to end." << std::endl;
w.Click ();
return(0);
}
示例 (C++)
#include "HalconCpp.h"
#include <iostream>
using namespace HalconCpp;
int main (int argc, char *argv[])
{
HWindow w(10,10,512,512);
HRegion reg;
int NumOfElements = 3;
std::cout << "Draw " << NumOfElements << " regions " << std::endl;
GenEmptyObj(®);
for (int i=0; i < NumOfElements; i++)
{
reg = reg.ConcatObj(w.DrawRegion());
}
HTuple circ = reg.Circularity ();
HTuple cont = reg.Contlength ();
for (int i = 0; i < NumOfElements; i++)
{
std::cout << "region " << i+1 << ": \tcircularity = " << circ[i].D() <<
"\tcontour length =" << cont[i].D() << std::endl;
}
std::cout << "Click into the graphics window to end." << std::endl;
w.Click ();
return(0);
}
结果
The operator contlength contlength Contlength Contlength Contlength contlength returns the value 2 (
H_MSG_TRUE )
if the input is not empty.
The behavior in case of empty input (no input regions available) is
set via the operator 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>) .
If necessary an exception is raised.
可能的前趋
threshold threshold Threshold Threshold Threshold threshold ,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing ,
connection connection Connection Connection Connection connection
可能的后继
get_region_contour get_region_contour GetRegionContour GetRegionContour GetRegionContour get_region_contour
替代
compactness compactness Compactness Compactness Compactness compactness
另见
area_center area_center AreaCenter AreaCenter AreaCenter area_center ,
get_region_contour get_region_contour GetRegionContour GetRegionContour GetRegionContour get_region_contour
模块
Foundation