circularity circularity Circularity Circularity circularity (Operator)
Name
circularity circularity Circularity Circularity circularity
— Shape factor for the circularity (similarity to a circle) of a region.
Signature
def circularity (regions : HObject) -> Sequence[float]
def circularity_s (regions : HObject) -> float
Description
The operator circularity circularity Circularity Circularity Circularity circularity
calculates the similarity of
the input region with a circle.
Calculation:
If F is the area of the region and max is the maximum distance from
the center to all contour pixels, the shape factor C
is defined as:
C = min(1,C')
The shape factor C of a circle is 1. If the region
is long or has holes, C is smaller than 1.
The operator circularity circularity Circularity Circularity Circularity circularity
especially responds to large bulges,
holes and unconnected regions. The value of C is clipped to 1.0,
because the pixel area of a region can only be an approximation of a
real circle's area. This approximation error is bigger for small
regions than for large regions.
In the documentation of this chapter (Regions / Features ), you can
find an image illustrating regions which vary in their circularity.
In case of an empty region the operator circularity circularity Circularity Circularity Circularity circularity
returns the
value 0 (if no other behavior was set (see set_system set_system SetSystem SetSystem SetSystem set_system
)).
If more than one region is passed the numerical values of the shape
factor are stored in a tuple, the position of a value in the tuple corresponding
to the position of the region in the input tuple.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Parameters
Regions Regions Regions Regions regions regions
(input_object) region(-array) →
object HRegion HObject HRegion Hobject
Region(s) to be examined.
Circularity Circularity Circularity Circularity circularity circularity
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Circularity of the input region(s).
Assertion: 0 <= Circularity && Circularity <= 1.0
Example (HDevelop)
* Comparison between shape factors of rectangle, circle and ellipse:
gen_rectangle1(R1,10,10,20,20)
gen_rectangle2(R2,100,100,0.0,100,20)
gen_ellipse(E100,100,100,0.0,100,20)
gen_circle(C,100,100,20)
circularity(R1,M_R1)
circularity(R2,M_R2)
circularity(E100,M_E)
circularity(C,M_C)
fwrite_string(FileId,['quadrate: ',M_R1])
fnew_line(FileId)
fwrite_string(FileId,['rectangle: ',M_R2])
fnew_line(FileId)
fwrite_string(FileId,['ellipse: ',M_E])
fnew_line(FileId)
fwrite_string(FileId,['circle: ',M_C])
fnew_line(FileId)
Example (C)
/* Comparison between shape factors of rectangle, circle and ellipse */
gen_rectangle1(&R1,10.0,10.0,20.0,20.0);
gen_rectangle2(&R2,100.0,100.0,0.0,100.0,20.0);
gen_ellipse(&E,100.0,100.0,0.0,100.0,20.0);
gen_circle(&C,100.0,100.0,20.0);
circularity(R1,&R1_);
circularity(R2,&R2_);
circularity(E,&E_);
circularity(C,&C_);
printf("quadrate: %g\n",R1_);
printf("rectangle: %g\n",R2_);
printf("ellipse: %g\n",E_);
printf("circle: %g\n",C_);
Example (HDevelop)
* Comparison between shape factors of rectangle, circle and ellipse:
gen_rectangle1(R1,10,10,20,20)
gen_rectangle2(R2,100,100,0.0,100,20)
gen_ellipse(E100,100,100,0.0,100,20)
gen_circle(C,100,100,20)
circularity(R1,M_R1)
circularity(R2,M_R2)
circularity(E100,M_E)
circularity(C,M_C)
fwrite_string(FileId,['quadrate: ',M_R1])
fnew_line(FileId)
fwrite_string(FileId,['rectangle: ',M_R2])
fnew_line(FileId)
fwrite_string(FileId,['ellipse: ',M_E])
fnew_line(FileId)
fwrite_string(FileId,['circle: ',M_C])
fnew_line(FileId)
Example (HDevelop)
* Comparison between shape factors of rectangle, circle and ellipse:
gen_rectangle1(R1,10,10,20,20)
gen_rectangle2(R2,100,100,0.0,100,20)
gen_ellipse(E100,100,100,0.0,100,20)
gen_circle(C,100,100,20)
circularity(R1,M_R1)
circularity(R2,M_R2)
circularity(E100,M_E)
circularity(C,M_C)
fwrite_string(FileId,['quadrate: ',M_R1])
fnew_line(FileId)
fwrite_string(FileId,['rectangle: ',M_R2])
fnew_line(FileId)
fwrite_string(FileId,['ellipse: ',M_E])
fnew_line(FileId)
fwrite_string(FileId,['circle: ',M_C])
fnew_line(FileId)
Example (HDevelop)
* Comparison between shape factors of rectangle, circle and ellipse:
gen_rectangle1(R1,10,10,20,20)
gen_rectangle2(R2,100,100,0.0,100,20)
gen_ellipse(E100,100,100,0.0,100,20)
gen_circle(C,100,100,20)
circularity(R1,M_R1)
circularity(R2,M_R2)
circularity(E100,M_E)
circularity(C,M_C)
fwrite_string(FileId,['quadrate: ',M_R1])
fnew_line(FileId)
fwrite_string(FileId,['rectangle: ',M_R2])
fnew_line(FileId)
fwrite_string(FileId,['ellipse: ',M_E])
fnew_line(FileId)
fwrite_string(FileId,['circle: ',M_C])
fnew_line(FileId)
Result
The operator circularity circularity Circularity Circularity Circularity circularity
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>)
.
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.
Possible Predecessors
threshold threshold Threshold Threshold Threshold threshold
,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
,
connection connection Connection Connection Connection connection
Alternatives
roundness roundness Roundness Roundness Roundness roundness
,
compactness compactness Compactness Compactness Compactness compactness
,
convexity convexity Convexity Convexity Convexity convexity
,
eccentricity eccentricity Eccentricity Eccentricity Eccentricity eccentricity
See also
area_center area_center AreaCenter AreaCenter AreaCenter area_center
,
select_shape select_shape SelectShape SelectShape SelectShape select_shape
Module
Foundation