elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld elliptic_axis_xld (算子)
名称
elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld elliptic_axis_xld — 等值线或多边形椭圆的参数。
签名
Herror elliptic_axis_xld (const Hobject XLD , double* Ra , double* Rb , double* Phi )
Herror T_elliptic_axis_xld (const Hobject XLD , Htuple* Ra , Htuple* Rb , Htuple* Phi )
void EllipticAxisXld (const HObject& XLD , HTuple* Ra , HTuple* Rb , HTuple* Phi )
HTuple HXLD ::EllipticAxisXld (HTuple* Rb , HTuple* Phi ) const
double HXLD ::EllipticAxisXld (double* Rb , double* Phi ) const
def elliptic_axis_xld (xld : HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def elliptic_axis_xld_s (xld : HObject) -> Tuple[float, float, float]
描述
算子 elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld EllipticAxisXld elliptic_axis_xld calculates the radii and the
orientations of the ellipses having the same orientation and the same
aspect ratio as the input contours or polygons.
The length of the major radius
Ra Ra Ra Ra ra ra and the minor radius Rb Rb Rb Rb rb rb as well as the
orientation of the main axis with regard to the horizontal
(Phi Phi Phi Phi phi phi ) are determined. The angle is indicated in radians.假设轮廓或多边形是闭合的。 If this is
not the case elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld EllipticAxisXld elliptic_axis_xld will artificially close the
contours or polygons.
Calculation:
If the moments
,
and
are
normalized and passed to the area (see moments_xld moments_xld MomentsXld MomentsXld MomentsXld moments_xld ),
the radii Ra Ra Ra Ra ra ra and Rb Rb Rb Rb rb rb are calculated as:
The orientation Phi Phi Phi Phi phi phi is defined by:
需要注意的是,elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld EllipticAxisXld elliptic_axis_xld 仅在轮廓或多边形在平面上包围区域时才会返回有效结果。特别需要注意的是,轮廓或多边形不得自相交。当传递开放轮廓或多边形时,这一点尤为重要,因为它们会被自动闭合,从而可能产生自相交的情况。可使用 test_self_intersection_xld test_self_intersection_xld TestSelfIntersectionXld TestSelfIntersectionXld TestSelfIntersectionXld test_self_intersection_xld 检测轮廓或多边形是否自相交。 If the contour or polygon intersects itself, useful values
for the ellipse parameters can be calculated with
elliptic_axis_points_xld elliptic_axis_points_xld EllipticAxisPointsXld EllipticAxisPointsXld EllipticAxisPointsXld elliptic_axis_points_xld 。
如果传递多个轮廓或多边形,结果将按其在 XLD XLD XLD XLD XLD xld 中的顺序存储为元组。
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
在元组级别上自动并行化。
参数
XLD XLD XLD XLD XLD xld (输入对象) xld(-array) → object HXLD HObject HXLD Hobject
待检查的轮廓或多边形。
Ra Ra Ra Ra ra ra (输出控制) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Major radius.
Assertion:
Ra >= 0.0
Rb Rb Rb Rb rb rb (输出控制) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Minor radius.
Assertion:
Rb >= 0.0 && Rb <= Ra
Phi Phi Phi Phi phi phi (输出控制) angle.rad(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Angle between the major axis and the x axis
(radians).
Assertion:
- pi / 2 < Phi && Phi <= pi / 2
复杂度
If N is the number of contour or polygon points, the runtime complexity is
O(N).
结果
elliptic_axis_xld elliptic_axis_xld EllipticAxisXld EllipticAxisXld EllipticAxisXld elliptic_axis_xld 在输入不为空时返回 2 ( H_MSG_TRUE )。如果输入为空则可设置行为通过 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>) 。如有必要,则抛出异常。
可能的前趋
gen_contours_skeleton_xld gen_contours_skeleton_xld GenContoursSkeletonXld GenContoursSkeletonXld GenContoursSkeletonXld gen_contours_skeleton_xld ,
edges_sub_pix edges_sub_pix EdgesSubPix EdgesSubPix EdgesSubPix edges_sub_pix ,
threshold_sub_pix threshold_sub_pix ThresholdSubPix ThresholdSubPix ThresholdSubPix threshold_sub_pix ,
gen_contour_polygon_xld gen_contour_polygon_xld GenContourPolygonXld GenContourPolygonXld GenContourPolygonXld gen_contour_polygon_xld ,
test_self_intersection_xld test_self_intersection_xld TestSelfIntersectionXld TestSelfIntersectionXld TestSelfIntersectionXld test_self_intersection_xld
可能的后继
area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld area_center_xld ,
gen_ellipse_contour_xld gen_ellipse_contour_xld GenEllipseContourXld GenEllipseContourXld GenEllipseContourXld gen_ellipse_contour_xld
替代
elliptic_axis_points_xld elliptic_axis_points_xld EllipticAxisPointsXld EllipticAxisPointsXld EllipticAxisPointsXld elliptic_axis_points_xld ,
smallest_rectangle2 smallest_rectangle2 SmallestRectangle2 SmallestRectangle2 SmallestRectangle2 smallest_rectangle2
另见
moments_xld moments_xld MomentsXld MomentsXld MomentsXld moments_xld ,
smallest_circle_xld smallest_circle_xld SmallestCircleXld SmallestCircleXld SmallestCircleXld smallest_circle_xld ,
smallest_rectangle1_xld smallest_rectangle1_xld SmallestRectangle1Xld SmallestRectangle1Xld SmallestRectangle1Xld smallest_rectangle1_xld ,
smallest_rectangle2_xld smallest_rectangle2_xld SmallestRectangle2Xld SmallestRectangle2Xld SmallestRectangle2Xld smallest_rectangle2_xld ,
shape_trans_xld shape_trans_xld ShapeTransXld ShapeTransXld ShapeTransXld shape_trans_xld
参考文献
R. Haralick, L. Shapiro
“Computer and Robot Vision”
Addison-Wesley, 1992, pp. 73-75
模块
基础