halcon算子学习2

  • closing_circle(Region : RegionClosing : Radius : )
    关闭圆的行为类似于关闭,即区域的边界被平滑,并且区域内小于半径Radius的圆形结构元素的孔被封闭。将close_circle运算定义为先进行扩张,再进行Minkowski减法,二者均具有相同的圆形结构元素。
  • connection(Region : ConnectedRegions : : )
    连接确定“区域”中给定的输入区域的连接组件。可以通过set_system(‘neighborhood’,<4/8>)设置用于此目的的邻域。默认值为8邻域,这对于确定前景的连接组件很有用。可以通过set_system(‘max_connection’,)设置连接返回的最大连接组件数。默认值0导致返回所有连接的组件。连接的逆运算符为union1。
  • reduce_domain(Image, Region : ImageReduced : : )
    运算符reduce_domain将给定图像的定义域减少到指示的区域。将新定义域计算为旧定义域与该区域的交集。因此,新的定义域可以是该区域的子集。矩阵的大小不变。
  • scale_image(Image : ImageScaled : Mult, Add : )
    运算符scale_image通过以下转换缩放输入图像(图像):
    g’ := g * Mult + Add
  • overpaint_gray(ImageDestination, ImageSource : : : )
    overpaint_gray将ImageSource中给定的图像的灰度值复制到ImageDestination中的图像。仅复制ImageSource域的灰度值(请参见reduce_domain)。
  • get_grayval_interpolated(Image : : Row, Column, Interpolation : Grayval)
    运算符get_grayval_interpolated返回在​​Image的几个子像素位置处的插值灰度值。行位置的坐标在元组Row中给出,列位置的坐标在元组Column中给出。灰色值在Grayval中作为浮点数的元组返回。
  • smallest_rectangle1(Regions : : : Row1, Column1, Row2, Column2)
    运算符minimum_rectangle1计算所有输入区域(与坐标轴平行)的周围矩形。周围的矩形由角像素(Row1,Column1,Row2,Column2)的坐标描述。矩形的计算基于区域像素的中心坐标
  • sort_region(Regions : SortedRegions : SortMode, Order, RowOrCol : )
    运算符sort_region根据区域的相对位置对区域进行排序。除“字符”外,所有排序方法都使用该区域的一个点。在参数RowOrCol ='row’的帮助下,这些点将根据其行和列进行排序。通过使用“列”,将首先使用列值。以下值可用于参数SortMode:
  • convert_image_type(Image : ImageConverted : NewType : )
    convert_image_type将任意类型的图像转换为任意新图像类型。如果从较大的灰度值范围转换为较小的灰度值范围(例如,从“ int4”到“ byte”),则太大或太小的值都将被“剪切”。如果结果图像的类型为“方向”,则将不在“方向”图像的有效值范围内的灰度值设置为值255,以将其标记为无效。因此,建议在调用此运算符之前通过调用scale_image来调整灰度值的范围。对于复杂类型的图像,仅转换实部。虚部被忽略。这有助于从频域转换回图像的有效转换。此类图像的虚部始终为0。
  • intersection(Region1, Region2 : RegionIntersection : : )
    intersection会计算Region1中的区域与Region2中的区域的相交。 Region1中的每个区域都与Region2中的所有区域相交。也就是说,在区域1的各个区域与合并区域相交之前,区域2的内部所有区域都将合并为一个区域。 RegionIntersection中区域的顺序与Region1中区域的顺序相同。
  • gen_rectangle1( : Rectangle : Row1, Column1, Row2, Column2 : )
    运算符gen_rectangle1生成一个或多个与坐标轴平行的矩形,这些坐标轴由左上角(Row1,Column1)和右下角(Row2,Column2)描述。通过传递多个角点元组可以创建多个区域。坐标系从(0,0)(左上角)到(Width-1,Height-1)。在这种情况下,请参见get_system和reset_obj_db。
  • create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID)
    运算符create_ncc_model准备一个模板,该模板在图像模板中传递,作为用于使用归一化互相关(NCC)进行匹配的NCC模型。模型的ROI作为模板的域传递。
    该模型是使用多个图像金字塔级别在每个级别上多次旋转生成的,并存储在内存中。输出参数ModelID是此模型的句柄,在随后的find_ncc_model调用中使用该句柄。
    金字塔等级的数量由参数NumLevels确定。应该选择尽可能大的位置,因为这样可以大大减少找到对象所需的时间。另一方面,必须选择NumLevels,以使模型仍然可识别,并且在最高金字塔等级上包含足够数量的点(至少八个)。可以使用gen_gauss_pyramid的输出图像的域来检查。如果生成的模型点不足,则内部会减少金字塔等级的数量,直到在最高金字塔等级上找到足够的模型点为止。如果此过程将导致没有金字塔等级的模型,即,如果模型点的数量在最低金字塔等级上已经太小,则create_ncc_model返回错误消息。如果NumLevels设置为“ auto”或0,则create_ncc_model自动确定金字塔等级的数量。可以使用以下命令查询自动计算的金字塔等级数
    get_ncc_model_params。在极少数情况下,create_ncc_model可能会确定金字塔级别数的值太大或太小。如果金字塔等级的数量选择得太大,则可能无法在图像中识别模型,或者可能有必要在find_ncc_model中为MinScore选择非常低的参数以找到模型。如果金字塔等级的数量选择得太少,则在find_ncc_model中查找模型所需的时间可能会增加。在这些情况下,应通过检查gen_gauss_pyramid的输出来选择金字塔等级的数量。在这里,应该使用Mode ='constant’和Scale = 0.5。
    参数AngleStart和AngleExtent确定可能旋转的范围,在该范围内可以在图像中出现模型。请注意,只能通过find_ncc_model在此角度范围内找到模型。参数AngleStep确定选定角度范围内的步长。因此,如果未在find_ncc_model中指定子像素精度,则此参数指定可为find_ncc_model中的角度实现的精度。应基于对象的大小选择AngleStep。较小的模型在图像中没有很多不同的离散旋转,因此对于较小的模型,应将AngleStep选择得较大。如果AngleExtent不是AngleStep的整数倍,则相应地修改AngleStep。为了确保独立于给定AngleStart的可能旋转范围的采样,可能旋转范围的修改如下:如果不存在正整数值n,使得AngleStart加n乘以AngleStep的正好为0.0,则减小AngleStart最多增加AngleStep的角度,然后将AngleExtent增加AngleStep的值。
  • gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : )
    运算符gen_rectangle2生成一个或多个矩形,其中心(行,列),方向Phi以及半边长Length1和Length2。方向以弧度给出,指示水平轴与边缘之间的角度(长度为1)(数学上为正)。坐标系从(0,0)(左上角)到(Width-1,Height-1)。在这种情况下,请参见get_system和reset_obj_db。通过传递一个元组的拐角点可以创建多个区域。
  • vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)
    vector_angle_to_rigid根据点对应关系和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵HomMat2D返回。该矩阵由2个分量组成:旋转矩阵R和平移矢量t(另请参见hom_mat2d_rotate和hom_mat2d_translate)
  • real_to_vector_field(Row, Col : VectorField : Type : )
    real_to_vector_field将两个实值图像Row和Col转换为矢量场图像VectorField。输入图像分别包含在行和列方向上的矢量分量。 VectorField的语义类型由Type设置。
  • crop_rectangle1(Image : ImagePart : Row1, Column1, Row2, Column2 : )
    操作员crop_rectangle1从每个输入图像中剪切一个或多个矩形区域。区域由矩形指示,由矩形的左上角和右下角的坐标定义。左上角必须在图像内。在右侧和底部,矩形可能会超出图像,但会设置输出图像的域,以便仅包含可以从输入图像派生的部分。如果矩形区域落在图像内,则每个生成的图像都具有其相应矩形的大小。
  • unwarp_image_vector_field(Image, VectorField : ImageUnwarped : : )
    unwarp_image_vector_field使用向量字段VectorField对图像Image进行变形,并在ImageUnwarped中返回未变形的图像。向量字段必须是语义类型“ vector_field_relative”,并且通常由optical_flow_mg确定。因此,unwarp_image_vector_field可以用于将optical_flow_mg的第二个输入图像不变形为第一个输入图像。应当注意,由于上述语义,矢量场图像表示从矢量场的目标图像到源图像的逆变换。
  • tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : )
    tile_images_offset将必须包含相同数量通道的多个输入图像对象平铺为大图像。输入图像对象Images包含Num个图像,它们的大小可能不同。输出图像TiledImage包含与输入图像一样多的通道。输出图像的大小由参数“宽度”和“高度”确定。输入图像在输出图像中左上角的位置由参数OffsetRow和OffsetCol确定。这两个参数必须完全包含Num值。可选地,每个输入图像可以被裁剪为小于输入图像的任意矩形。为此,必须相应地设置参数Row1,Col1,Row2和Col2。如果这四个参数中的任何一个设置为-1,则不会裁剪相应的输入图像。无论如何,所有四个参数都必须包含Num值。如果裁剪了输入图像,则位置参数OffsetRow和OffsetCol指的是裁剪图像的左上角。如果输入图像在输出图像中彼此重叠(同时考虑到它们各自的域),则图像中索引较高的图像将覆盖索引较低的图像的图像数据。通过将Image的域复制到输出图像中的相应位置来获得TiledImage的域。

你可能感兴趣的:(曲面展开项目,学习,图像处理,计算机视觉)