1.vector_angle_to_rigid——从点和角度计算刚性仿射变换
函数原型:vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)
描述:
vector_angle_to_rigid根据点对应关系和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵HomMat2D返回。
参数:
Row1 (输入参数) ——原始点的行坐标
Column1 (输入参数) ——原始点的列坐标
Angle1 (输入参数) ——原始点的角度
Row2 (输入参数) ——转换点的行坐标
Column2 (输入参数) ——转换点的列坐标
Angle2 (输入参数) ——转换点的角度
HomMat2D (输出参数) ——输出转换矩阵
2.affine_trans_contour_xld——对XLD轮廓进行任意仿射2D变换
函数原型:affine_trans_contour_xld(Contours : ContoursAffineTrans : HomMat2D : )
描述:
affine_trans_contour_xld将任意仿射2D变换,即缩放、旋转、平移和倾斜(倾斜)应用于轮廓中给定的xld轮廓,并以ContoursAffineTrans的形式返回变换后的轮廓。仿射变换由HomMat2D中给出的齐次变换矩阵来描述,它可以使用hom_mat2d_identity、hom_mat2d_scale、hom_mat2d_rotate、hom_mat2d_translate等运算符创建,也可以是向量_angle_to_rigid等运算符的结果。
参数:
Contours (输入参数) ——输入XLD轮廓。
ContoursAffineTrans (输出参数) ——转换后的XLD轮廓
HomMat2D (输入参数) ——输入转换矩阵
3.find_shape_model——搜索图像上的模板
函数原型:find_shape_model(Image: ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness : Row,Column, Angle, Score)
Image:要搜索的图像
ModelID:算子create_shape_model生成的模板
AngleStart:搜索时的起始角度
AngleExtent:搜索时的角度范围
MinScore:最小匹配值,输出的Score(匹配的得分)大于该值(MinScore设置的越大,搜索的就越快。如果模板在图像中没有被遮挡,MinScore可以设置为0.8这么高甚至0.9)
NumMatches:定义了在图像上找到模板的最大的个数
MaxOverlap:当找到的目标存在重叠时,且重叠大于该值时选择一个好的输出(如果MaxOverlap=0, 找到的目标区域不能存在重叠, 如果MaxOverlap=1,所有找到的目标区域都要返回)
SubPixel:计算精度的设置,五种模式,大多情况选择2,3模式(最小二乘调整的模式有:‘least_squares’, ‘least_squares_high’, 和’least_squares_very_high’。如果希望设置最小二乘就选择’least_squares’, 因为这样能确保运行时间和精度的权衡。通常SubPixel设置为’interpolation’)
NumLevels:搜索时金字塔的层数(NumLevels可以包含第二个参数,这个参数定义了找到匹配模板的最低金字塔层数。NumLevels=[4,2]表示匹配在第四层金字塔开始,在第二层金字塔找到匹配(最低的设为1)。可以使用这种方法降低匹配的运行时间,但是这种模式下位置精度是比正常模式下低的,所谓正常模式是在金字塔最底层匹配。因此如果需要较高的精度,应该设置SubPixel至少为’least_squares’。如果金字塔最底层设置的过大,可能不会达到期望的精度,或者找到一个不正确的匹配区域。在这种情况下最低金字塔层数应设为最小值)
Greediness:贪婪度,一般设为0.9。越高速度快,但容易出现找不到的情况()
Row,Column, Angle, Score:输出匹配位置的行和列坐标、角度、得分
4.create_shape_model——模板创建
函数原型:create_shape_model(Template :: NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast : ModelID)
Template :reduce_domain后的模板图像(先确定一个ROI区域,然后通过算子reduce_domain得到这个区域)
NumLevels :金字塔的层数,可设为“auto”或0—10的整数(该值越大,匹配使用的时间越小。
AngleStart :模板旋转的起始角度
AngleExtent:模板旋转角度范围,>=0(参数AngleStart、AngleExtent定义了模板可能发生旋转的范围。在后续算子find_shape_model去发现模板时,只能在这个范围内去匹配)
AngleStep:旋转角度的步长, >=0 and <=pi/16(该参数定义了旋转角度范围内的步长,对于较小的模板图像AngleStep应该设置的比较大。如果AngleStep=‘auto’,算子create_shape_model将会基于模板的大小自动定义一个合适的角度步长.。自动计算出来的AngleStep可以使用get_shape_model_params函数查看)
Optimization:设置模板优化和模板创建方法(如果Optimization= ‘none’, 所有的模型点数将要存储;如果Optimization设置为’auto’, create_shape_model自动确定模型的点数
Metric:匹配方法设置(如果Metric= ‘use_polarity’,图像中的目标必须和模型具有一样的对比度。例如,如果模型是一个亮的目标在一个暗的背景上,那么仅仅那些比背景亮的目标可以找到。如果Metric= ‘ignore_global_polarity’,在两者对比度完全相反时也能找到目标。如果Metric= ‘ignore_local_polarity’, 即使局部对比度改变也能找到模型。例如,当目标包含一部分中等灰度,并且其中部分比较亮部分比较暗时,采用这种模式是非常有用的。由于这种模式下算子find_shape_model的运行时间显著增加,最好的方法是使用create_shape_model创建几个反映目标可能的对比度变化的模型,同时使用find_shape_models去匹配他们。如果是多通道图像作为模板图像或搜索图像,仅仅第一个通道被使用。如果Metric=‘ignore_color_polarity’, 即使颜色对比度局部变化也能找到模型。例如,当目标的部分区域颜色发生变化(e.g.从红到绿)的情况。如果不能提前知道目标在哪一个通道是可见的这种模式是非常有用的。‘ignore_color_polarity’可以使用于具有任意通道数目的图像中。如果在单通道图像中使用,效果和’ignore_local_polarity’是完全相同的)
Contrast:设置对比度(参数Contras决定着模型点的对比度。对比度是用来测量目标与背景之间和目标不同部分之间局部的灰度值差异。Contrast也可以是两个数值,这时模板使用近似edges_image函数中滞后阈值的算法进行分割。其中,第一个数值是比较低的阈值,第二个数值是比较高的阈值。Contrast也可以有第三个数值,这个数值是在基于组件尺寸选择重要模型组件时所设置的阈值。如果一个小的模型组件被抑制,但是不使用滞后阈值,那么在Contrast中必须指定三个数值,在这种情况下前两个数值设置成相同的数值。这个参数的设置可以在inspect_shape_model函数中查看效果。如果Contrast设置为’auto’,create_shape_model将会自动确定三个上面描述的数值,或者仅仅自动设置对比度(‘auto_contrast’),滞后阈值(‘auto_contrast_hyst’)或是最小尺寸(‘auto_min_size’)中一个。其他没有自动设置的数值可以按照上面的格式再进行设置。允许各种组合,例如:如果设置 [‘auto_contrast’,‘auto_min_size’],对比度和最小尺寸自动确定;如果设置 [‘auto_min_size’,20,30],最小尺寸会自动设定,而滞后阈值被设为20和30。有时候可能对比度阈值自动设置的结果是不满意的,可以手动设置这些参数。对比度阈值可以使用determine_shape_model_params函数自动确定,也可以在调用create_shape_model之前使用inspect_shape_mode函数检查效果)
MinContrast:设置最小对比度(参数MinContrast用来确定在执行算子find_shape_model进行识别时模型的哪一个对比度必须存在。如果要在对比度较低的图像中识别模板,MinContrast必须设置为一个相对较小的数值。MinContrast必须小于Contrast。如果MinContrast设置为’auto’,最小对比度会基于模板图像中的噪声自动定义。使用get_shape_model_params函数可以查询自动计算的最小对比度)
ModelID:输出模板句柄