Halcon算子-1D Measuring

来源:互联网 发布:2017淘宝直播盛典回放 编辑:程序博客网 时间:2024/05/20 19:16


一.基本概念

二十.1D <wbr>Measuring(基础篇)
基本流程为:获取图像---对图像进行灰度值标定(针对相机获取的图像灰度和输入能量之间的非线性关系,获得相机对输入能量的线性函数)---排列感兴趣区域或图像---校正图像---创建测量句柄---进行测量---将测量结果转换到世界坐标系---结果可视化---释放测量句柄。

二.典型相关算子:

1.gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : )

创建任意方向的一个矩形,控制输入分别为矩形中心的行列坐标,矩形纵向与水平方向的夹角,长和宽的一半。

2.gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation: MeasureHandle)

产生测量句柄,准备提取和矩形主轴垂直的直边缘。插值方法有:'nearest_neighbor', 'bilinear', 'bicubic'三种。

3. measure_pairs(Image : : MeasureHandle, Sigma, Threshold, Transition, Select : RowEdgeFirst,ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance,InterDistance)

抽取和矩形或者圆弧垂直的直线。

MeasureHandle:测量句柄

Sigma:进行高斯平滑的方差值。

Threshold :边缘的最小幅值。

Transition:沿主轴方向dark-to-light定义为第一类边缘,反之为第二类边缘。

Select (input_control)  string  (string)

RowEdgeFirst ColumnEdgeFirst AmplitudeFirst

第一类边缘点的行列坐标和幅度值。

RowEdgeSecond ColumnEdgeSecond AmplitudeSecond

第二类边缘点的行列坐标和幅度值。

IntraDistance :每个边缘对之间的距离。

InterDistance :连续边缘对之间的距离。

4.get_points_ellipse( : : AngleRowColumnPhiRadius1Radius2 : RowPointColPoint)

返回椭圆上某一点,该点与椭圆中线连线和椭圆长轴正方向成角为参数Angle

RowColumnPhiRadius1Radius2:为椭圆的参数

RowPointColPoint:返回点的行列坐标。

5. disp_arc( : : WindowHandleCenterRowCenterColAngleBeginRowBeginCol : )

在窗口中显示圆弧。从(BeginRowBeginCol)点,顺时针显示,角度为Angle

6.gen_measure_arc( : : CenterRowCenterColRadiusAngleStartAngleExtent,AnnulusRadiusWidthHeightInterpolation : MeasureHandle)

产生圆弧测量句柄,提取和圆弧垂直的直线。

AnnulusRadius:为沿着半径方向测量宽度的一半。

7.count_seconds( : : : Seconds)

程序执行时间测量算子。Eg. count_seconds(Start)

* program segment to be measured

count_seconds(End)

Seconds := End - Start

8. measure_pos(Image : : MeasureHandleSigmaThresholdTransitionSelect : RowEdge,ColumnEdgeAmplitudeDistance)

提取和矩形或者弧垂直的边缘线。

RowEdgeColumnEdge:提取的边缘线与测量弧线或测量矩形的交点坐标,为亚像素精度,改算子常和循环配合使用。

Distance:连续边缘线之间的距离。

9. distance_pp( : : Row1Column1Row2Column2 : Distance)

计算两点之间的距离。

10. create_funct_1d_pairs( : : XValuesYValues : Function)

根据一系列的(x,y)坐标值创建一个函数。X坐标值会被升序排列。

11. set_fuzzy_measure_norm_pair( : : MeasureHandlePairSizeSetTypeFunction : )

设置归一化的隶属度函数。

PairSize:优先的边缘对宽度

SetType:待选择的模糊集合

Function :隶属度函数

12. fuzzy_measure_pairs(Image : : MeasureHandleSigmaAmpThreshFuzzyThreshTransition :RowEdgeFirstColumnEdgeFirstAmplitudeFirstRowEdgeSecondColumnEdgeSecondAmplitudeSecond,RowEdgeCenterColumnEdgeCenterFuzzyScoreIntraDistanceInterDistance)

创建模糊测理论量句柄,提取和矩形或弧线垂直的直线。

AmpThresh:最小的边缘梯度阈值;

FuzzyThresh:最小的模糊阈值;

FuzzyScore:对所提取边缘值的模糊评价;

13.create_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep,Optimization, Metric, Contrast, MinContrast : ModelID)

为匹配准备一个形状模型。模型产生于多个图像金字塔级数,并储存在内存中。每个级数再进行多次旋转。最高的金字塔级数最少需要四个特征点进行匹配。

Template:定义域用来创建模板的输入图像

NumLevels: 金字塔的最大级别。

AngleStart ;AngleExtent ;AngleStep :匹配旋转开始的角度和终止的角度范围,角度步长,单位弧度。

Optimization:产生模板的优化种类和方法。

Metric :模板被识别的条件。

Contrast:模板图像物体和背景之间或物体各部分之间的灰度差异值。最小为2个元素的数组。

MinContrast :最小灰度差异。

ModelID : 模型句柄代码。

14.get_shape_model_contours( : ModelContours : ModelID, Level : )

返回一个形状模型的多边形轮廓表示。

15.hom_mat2d_identity( : : : HomMat2DIdentity)

创建一个2D转换的齐次变换矩阵---平移矩阵。

                   / 1 0 0 \

HomMat2DIdentity = | 0 1 0 |

\ 0 0 1 /
16.hom_mat2d_translate( : : HomMat2DTxTy : HomMat2DTranslate)   增加一个平移量到其次变换矩阵HomMat2D中。
/ 1 0 Tx \
HomMat2DTranslate = | 0 1 Ty | * HomMat2D
\ 0 0 1 /
 

17. affine_trans_contour_xld(Contours : ContoursAffinTrans : HomMat2D : )

对多边形轮廓进行2D映射。HomMat2D为齐次变换矩阵,应用到轮廓的每一个点。

18.wait_seconds( : : Seconds : )

推迟程序执行时间。

 

0 0
原创粉丝点击