sherlock常用算法指令总结

  1. PtsToBestAngle两个点形成的直线与X轴的角度
    Sherlock中Y轴是向下增加的,角度输出的坐标系是笛卡尔坐标系。 例如,一个point (100,100) 到 点 (200,200) 的角度,在笛卡尔坐标系中是-45 degrees.但是在sherlock中是45 degrees。 在笛卡尔坐标系中,逆时针增加角度,sherlock中是顺时针。指令 PtToPtAngleDist测量的角度是以笛卡尔坐标系为准的。
    PtsToBestAngle 中设置point1与point2形成的直线设置为X轴,角度定义为–π/2 to π/2 (-90 to 90 degrees)。
    这幅图显示了pt1 =(100,100)和sherlock坐标pt2显示的4个值。PtsToBestAngle角度显示在右表。。角的阴影区域显示了范围值。
    sherlock常用算法指令总结_第1张图片

小距离测量会引起误差,减少误差的办法是,x,y距离小于0.1的时候,角度设置为0.
输入:
• “pt1” [Point] - first point
• “pt2” [Point] - second point
输出:
• “angle” [Double] – Sherlock角度,顺时针是角度增加的方向。

  1. PtsToBestCircle点拟合最佳圆
    为了保证输入的圆是个标准圆,可以做按照以下方法进行筛选:

  2. 设置"percent outliers"=0 并且"preprocess"=false,

  3. 使用尽可能多的输入“点”,均匀化点,点越多越好。你通常需要16个或更多的点才可能可靠估计圆和椭圆度。
    输入:
    • “percent outliers” [Double] – 设置舍弃点的百分比
    默认值: 0
    Minimum value: 0
    Maximum value: 50
    • “points” [Point array] –用来拟合圆的点,至少需要三个点。
    • “preprocess” [Bool] - =true,可以删除一些孤立点。
    默认值: False
    • “tolerance” [Double] - 最大允许集群的中心或理想点之间的距离,最糟糕的可接受的观点。必须大于或等于零。
    默认值: 1.0
    Minimum value: 0.0
    Maximum value: double的最大值
    • “annotation color” [Double] - 最适合设置颜色和启用或禁用画圆注释。
    默认值: 0xFFFF = 65535,黄色圆.
    Minimum value: 最小设置为0。
    Maximum value: 0xFFFFFF = 16777215, 表示白色(R,G,B all = 255).
    输出:
    • “diameter” [Double] – 直径.
    • “points included” [Double] – 用来拟合圆的点.
    • “avg fit error” [Double] –点与拟合圆的之间的距离。
    • “center” [Point] – 中心点.
    • “top left” [Point] – 左上点.
    • “top right” [Point] – 右上点.
    • “bottom right” [Point] –右下点.
    • “bottom left” [Point] – 左下点.
    • “outliers” [Point array] – 被丢弃的点.
    • “points used” [Point array] – 用来拟合圆的点.
    Circularity 输出:
    • “min diameter” [Double] –最小直径.
    • “max diameter” [Double] –最大直径
    • “circularity” [Double] - 圆度
    计算公式如下:circularity = 100 * (min diameter / max diameter)
    • “ovality” [Double] – 椭圆度.如果 A = max 直径和B = min直径时, ovality = 100*(A-B)/(A+B). 这是一个标准衡量管道和其他零件椭圆测量。
    • “std deviation” [Double] - 标准偏差的距离(半径)。

  4. PtsToBestLine拟合直线
    输入:
    • “percent outliers” [Double] -通过百分比过滤点.
    默认值: 0.00 [0.00000000000000000]
    • “points” [Point array] – 数组点.
    • “preprocess” [Bool] -等于true,则利用 Remove Isolated Outliers筛除点.
    • “tolerance” [Double] -从理想的点,到最坏的情况下,允许接受的计算最大的距离,值必须大于0.
    默认值: 1.0
    输出:
    • “points included” [Double] -用来拟合直线的点.
    • “line” [Line] -拟合的直线.

  5. PtsToLnDist一个点数组到线的距离
    输入:
    • “pts” [Point array]
    • “ln” [Line]
    输出:
    • “distances” [Double array]
    • “min distance” [Double]
    • “max distance” [Double]
    • “min distance array index” [Double]
    • “max distance array index” [Double ]
    PtsToLnDistInf一个指定的点数组到线的距离
    输入:
    • “ln” [Line]
    • “point” [Point]
    Has infinite 输入
    输出:
    • “distances” [Double array]
    • “min distance” [Double]
    • “max distance” [Double]
    • “min distance array index” [Double]
    • “max distance array index” [Double]
    PtsToPtsDist一个点数组到一个点数组的距离
    输入:
    • “pts0” [Point array]
    • “pts1” [Point array]
    输出:
    • “distance” [Double array]
    • “x distance” [Double array]
    • “y distance” [Double array]

  6. Size返回数组大小
    输入:
    • “array” [Bool Array] – 新数组.
    输出:
    • “size” [Integer] – 返回数组大小.

GetAt获取指定index的元素值
输入:
• “array” [Line array] – 原数组.
• “index” [Double] –序号index.
默认值: 0.00 [0.00000000000000000]
输出:
• “value” [Line] – 返回index的数值.

Extrema返回数组中的最大值和最小值的数值和索引
输入:
• “array” [Double array] –原数组.
输出:
• “maximum value” [Double] –最大值.
• “maximum index” [Double] –最大值索引index
• “minimum value” [Double] –最小值
• “minimum index” [Double] – 最小值索引index

Maximum计算最大值数值和序号index
Input:
• “array” [Double array] – 原数组.
输出:
• “maximum value” [Double] –最大数.
• “maximum index” [Double] – 最大数的序号index.

Minimum计算最小值和序号index
Input:
• “array” [Double array] – 原数组
输出:
• “minimum value” [Double] – 最小值.
• “minimum index” [Double] – 最小值的序号index.

Reverse倒序数组的元素
Input:
• “input array” [Double array] –原数组.
Output:
• “reversed array” [Double array] –返回新的数组.

Sor数组元素排序
输入:
• “arr” [Double array] – 原数组.
• “descending” [Bool] – 排序的方向.
默认值: FALSE = 升序
TRUE =降序
输出:
• “new array” [Double array] – 返回新的数组.

你可能感兴趣的:(sherlock)