HALCON中的算子大全(中英对照)
sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)一幅图减另一幅图。用一幅图的灰度减另一幅的灰度成新的一幅图。
mult_image (Image, ImagePart, ImageResult, 0.015, 0)一幅图加一幅成的一幅图
convert_image_type (Traffic2, ImageConverted2, 'int2')转换图像的格式
crop_part (ImageNoise, ImagePart, 0, 0, Width, Height)取出一幅图的中部分
dots_image (ImageResult, DotImage, 5, 'dark', 2)取出图像中圆点
partition_dynamic (SelectedRegions, Partitioned, 25, 20)根据各个区域的特征将各个区域分割开。
intersection (Partitioned, Region, Characters)取出两个区域中重叠的部分,如果Region有两个区域在Partitioned中,则这两个区域合并成一区域。
difference (RegionDilation, RegionErosion, RegionDifference) 取出两个区域中不重叠的部分。
critical_points_sub_pix (FilterResponse, 'facet', 1.5, 0.7, RowMin, ColMin, RowMax, ColMax, RowSaddle, ColSaddle)取出图像中的关键点。
corner_response (Image, FilterResponse, 3, 0.04)
auto_threshold (Image, Regions, 10)自动阈值分割,根据灰度直方图中两波峰中的波谷取出阈值。
closing (RegionClosing3, Rectangle, RegionClosing4)用一个设计好的区域来封闭其它区域。
hom_mat2d_identity (HomMat2DIdentity)生成一个2D单位矩阵
hom_mat3d_identity (HomMat3DIdentity)生成一个3D单位矩阵
hom_mat2d_translate (HomMat2DIdentity, -0.5*(Row1+Row2), -0.5*(Column1+Column2), HomMat2DTranslate)对矩阵进行2D变换,用于平移。
hom_mat3d_rotate (HomMat3DIdentity, GraspPhiZ_ref, 'z', 0, 0, 0, HomMat3D_RZ_Phi) 对矩阵进行3D变换,用于旋转。
hom_mat3d_translate (HomMat3D_RZ_Phi, CenterPointX_ref, CenterPointY_ref, 0, ref_H_grasp) 对矩阵进行3D变换,用于平移。
hom_mat2d_scale (HomMat2DTranslate, ScaleFactor, ScaleFactor, 0, 0, HomMat2DScale) 对矩阵进行变换,用于缩放
hom_mat3d_compose (cam_H_ref, ref_H_grasp, cam_H_grasp)将两矩阵相乘
hom_mat3d_to_pose (cam_H_grasp, PoseCamGripper)将矩阵变换成3D位姿
affine_trans_contour_xld (LogoContoursTemp, LogoContours, HomMat2DComplete)对线条LogoContoursTemp进行HomMat2DComplete对应的变换(平移和缩放)。
compose3 (ImageRed, ImageGreen, ImageBlue, LogoImageTempl)将三幅图像合并成一幅图像
decompose3 (LogoImage, ImageR, ImageG, ImageB)将一幅图像根据RGB值转换成三幅图像。
paint_xld (LogoContours, LogoImageTempl, LogoImage, [Blue,Orange,Blue,Blue,Blue,Blue])对线条喷颜色。Blue := [0,48,117],Orange := [255,181,41]
check_difference (Traffic1, Traffic2, Selected1, 'diff_outside', -255, 15, 0, 0, 0)根据两幅图的不同进行图像分割。
bin_threshold自动阈值分割,与auto_threshold (Image, Regions, 10)类似,但只有一个最小值取得仅有一个阈值。
char_threshold (Alpha1, Alpha1, Characters, 6, 95, Threshold)自动阈值分割,阈值根据直方图的波峰取得
dyn_threshold (ImageFilled, ImageMean, RegionDynThresh, 3, 'light')动态阈值分割。
gray_histo (Alpha1, Alpha1, AbsoluteHisto, RelativeHisto)获得绝对与相对直方。
background_seg (Edges, BackgroundRegions)将找出的区域根据背景分割成各个连通的区域。
fill_up_shape (BackgroundRegions, RegionFillUp, 'area', 1, 40)有选择性的填充
smooth_funct_1d_gauss (Function, Sigma, SmoothedFunction)对一维数组进行平滑处理。
funct_1d_to_pairs (SmoothedFunction, XValues, YValues)将数据分别对应赋予一个横坐标。
fill_interlace (Image, ImageFilled, 'odd')修改在采集图像过程中造成的两个半幅图像拼接的问题。
regiongrowing (Image, Regions, 1, 1, 1, 100)将图像分割成各个灰度值相近的区域。
expand_gray_ref (Regions, Image, EmptyRegion, RegionExpand, 'maximal', 'image', Mean, 11)根据灰度和颜色将分离的区域连通。
expand_line (Image, RegionExpand, Line, 'mean', 'row', 100)将轮廓拓展成一个跟其灰度相近的区域。
expand_region (Regions, NoPixel, RegionExpanded1, 'maximal', 'image') 根据设定的特征将分离的区域连通。
fast_threshold (Image, Region, 128, 255, 10)根据最大和最小灰度以及面积选出区域
gray_erosion_rect (Image, Imag, StrokeWidth, StrokeWidth)每个点的灰度值用这个点的矩形掩码内最小灰度值代替。
select_shape_std (ConnectedRegions, SelectedRegion, 'max_area', 70)从多个区域选出指定特征相似的区域。如选出面积最大的区域。
scale_image_max (ImageReduced, ImageScaleMax)增加图像的对比度
text_line_orientation (SelectedRegion, ImageScaleMax, 30, rad(-30), rad(30), OrientationAngle) 检测具有字符的图像的方向
rotate_image (ImageScaleMax, ImageRotate, deg(-OrientationAngle), 'constant')将图像按照指定的角度旋转
find_text (ImageRotate, TextModel, TextResult)根据设定的模板寻找字符
get_mposition (WindowHandleButton, Row, Column, Button)获得鼠标坐标
gen_grid_region (RegionGrid, Gap, Gap, 'lines', Width, Height)生成网格区域
clip_region (Grid, StreetGrid, 165, 20, 405, 750)选择一定范围内的区域。
clip_region_rel (RegionBorder, RegionClipped, 5, 5, 5, 5)选择四边都减去一定像素的区域
gray_closing (Image, ImageReduced, ImageClosingFast)灰度值闭操作
gray_opening (Image, ImageReduced, ImageOpeningFast) 灰度值开操作
hysteresis_threshold (EdgeAmplitude, RegionHysteresis, 10, 20, 10)当大于最大阈值的点取出做为可靠点,最大与最小值之间的点根据与可靠点的关系选出。
get_domain (Image, Domain)得到整幅图像的区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)在区域内部的实心区域得到一个平行于横坐标的最大矩形。
complement(Region : RegionComplement : : )找到输入区域的补区域。
interjacent (Regions, RegionInterjacent, 'border')找到将各个区域分割开的区域
local_max (Image, LocalMaxima)找到比周围灰度值都大的点。
local_min (ImageInverted, LocalMinima) 找到比周围灰度值都小的点
smooth_image (Image, ImageSmooth, 'deriche2', 0.2)平滑图像
invert_image (ImageSmooth, ImageInverted)用255减去每个点的灰度值作为这个点新的灰度值。
shape_trans (RegionFillUp, Pads, 'convex')根据指定的参数对区域的形状进行转换,如转换成正方形等。
select_shape_proto (Pads, BallBonds, MissingBonds, 'overlaps_rel', 0, 0)选出具有相似特征的所有区域
boundary (RegionIntersection, RegionBorder, 'inner')获得区域的边界
lines_gauss (ImageReducedTracks, Lines, 1.5, 1, 8, 'light', 'true', 'true', 'true')提取图的线条并计算出图的宽度。
get_contour_xld (Line, Row, Column)获得线条的各个点的坐标
min_max_gray (ImageAngioMedian, ImageAngioMedian, 0, Min, Max, Range)获得区域内图像的最大和最小灰度值
median_rect (ImageNeedle, ImageNeedleMedian, 41, 41)对图像中值滤波
shape_trans_xld (Border, XLDConvex, 'convex')将区域的边界根据不同的属性转化成线条
get_contour_attrib_xld (Line, 'width_left', WidthL)得到线上每个点的属性
fit_circle_contour_xld (ObjectSelected, 'ahuber', -1, 2, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)将线条拟合成圆,得到位置和半径。
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1.0)生成一个圆
get_contour_global_attrib_xld (ObjectSelected, 'cont_approx', Attrib)返回线条的全局属性值,当Attrib<0时线条是直线,当Attrib>0时是圆弧。
clip_contours_xld (Lines, LinesClipped, Top, Left, Bottom, Right)选择一定区域内的线条
clip_end_points_contours_xld (EllipseContour, ClippedContoursLength, 'length', 20)去除线条两端的部分像素。
region_to_bin (Rectangle, BinImage, 130, 100, 120, 130)将区域转换成具有固定灰度值的图像
paint_gray (SmoothedImage, BinImage, Image)将一图图像绘制到另一幅图像上。
union_collinear_contours_xld (RegressContours, UnionContours, 10, 1, 2, 0.1, 'attr_keep')连接共线的线条。
gen_contour_polygon_xld (Contour4, [200,200,300,300,200], [320,450,450,300,300])生成任意多边曲线
close_contours_xld (Contours, ClosedContours)让不封闭的线条封闭
select_contours_xld (Contours, SelectedContours, 'closed', 0, 20, 0, 0)选择一定条件的线条。
crop_contours_xld (Lines, LinesCropped, Top - 0.5, Left - 0.5, Bottom + 0.5, Right + 0.5, 'false')提取出一定范围内的线条。
gen_polygons_xld (Contour1, Polygon1, 'ramer', 10)将线条拟合成多边形。
dev_set_part (239, 197, 239+17, 197+17)设置显示的区域
dev_set_color ('cyan')设置显示的颜色
dev_set_draw ('margin')设置显示的区域是填充还是空心的
dev_set_shape ('ellipse') 设置显示的区域的形状
select_region_point (Regions, DestRegions, Row, Column)选择包含指定点的区域
gen_contour_region_xld (SelectedRegions, Contours, 'border_holes')根据区域和指定的特征生成轮廓线。
dump_window_image (DumpImage, WindowHandle)将窗口的内容截图成图像
area_center_points_xld (ClipContours, Area, RowPoints, ColumnPoints)轮廓线所有点计算的中心
area_center_xld (ClipContours, Area, Row, Column, PointOrder)轮廓线所有的区域的中心
gen_nurbs_interp (Rows, Cols, [0,-10,0,10], 3, CtrlRows, CtrlCols, Knots)根据提供的点拟合成曲线的坐标
gen_contour_nurbs_xld (Contour, CtrlRows, CtrlCols, Knots, 'auto', 3, 1, 5)根据拟合的坐标生成轮廓线
gen_parallel_contour_xld (Edges, ParallelEdgesAngle, 'contour_normal', 3)根据指定的特征生成相应的平行线。
get_grayval_contour_xld (Image, Contour, 'bilinear', Grayval)提取了轮廓线上所有点的灰度值
test_subset_region(Region1, Region2 : : : IsSubset)测试一个区域是不是在另一个区域中。
subset(Rows,Min)从数组Rows先出Min对应序列的数组
create_funct_1d_array (Grayval, Function)根据数组生成一个函数序列
local_min_max_funct_1d (Function, 'strict_min_max', 'false', Min, Max)提取出函数序列中的局部最大和最小值。
dev_inspect_ctrl (PoseRobotGrasp_ZYX)打开检测窗口
dev_close_inspect_ctrl (PoseRobotGrasp_ZYX)关闭检测窗口
pose_to_hom_mat3d (PoseCamBase, cam_H_base)将3D位姿转换成一个矩阵。
disp_3d_coord_system (WindowHandle, CamParam, PoseCamRef, 0.01)根据内参和外参显示3D坐标系
concat_obj (Lines, Contour, Lines)将对象合并,可以分类时将属性相同的人为合并成一类。
gen_parallels_xld (Polygon, ParallelLines, 50, 100, rad(10), 'true')找到平行的轮廓线
get_parallels_xld (ParallelLines, Row1, Col1, Length1, Phi1, Row2, Col2, Length2, Phi2)得到平行轮廓线的相关坐标。
affine_trans_point_3d (cam_H_ref, GraspPointsX_ref, GraspPointsY_ref, [0, 0], GraspPointsX_cam, GraspPointsY_cam, GraspPointsZ_cam)对点进行3D变换。
project_3d_point (GraspPointsX_cam, GraspPointsY_cam, GraspPointsZ_cam, CamParam, GraspPointsRow, GraspPointsCol)将空间的3D坐标变换到图像坐标
union_cocircular_contours_xld (ContoursSplit, UnionContours, 0.9, 0.5, 0.5, 200, 50, 50, 'true', 1)将属于同一个圆的轮廓线连接起来
sort_index(Length)[|Length|-1]+1找出最大值对应的索引
polar_trans_image (ImageReduced, ImagePolar, Row, Column, PolarResolution, Radius+5)
把图像由笛卡尔坐标转换成极坐标下图像,及把圆环形的图像区域转换成矩形区域。
polar_trans_region_inv (RegionUnion, XYTransRegion, Row, Column, 6.28319, 0, Radius-RingSize, Radius, 640, RingSize, 1280, 1024, 'nearest_neighbor') 把图像由极坐标坐标转换成笛卡尔下图像,及把矩形的图像区域转换成圆环形区域。
rotate_image (ImagePart, ImageRotate, 90, 'constant')将图像旋转90度
lines_color (Image, Lines, 3.5, 0, 12, 'true', 'false')检测图像中颜色线条,并提取出它们的宽度。
Measure_circle提取圆弧线的例子:
intersection_ll( : : RowA1, ColumnA1, RowA2, ColumnA2, RowB1, ColumnB1, RowB2, ColumnB2 : Row, Column, IsParallel)提取两条交叉直线交叉点的坐标
orientation_region (Region, OrientationRegion)提取区域的方向
obj_diff (ConnectedRegions, LeftRegions, RightRegions)提取两组对象中不同的对象。
optical_flow_mg (Image1, Image2, VectorField, 'clg', 1, 1, 1000, 5, 'default_parameters', 'fast')计算两幅图像中的视觉差异,用于监控。
vector_field_length (VectorField, LengthImage, 'squared_length')计算向量的长度,得到差异图像。
local_max_sub_pix (ImageReduced, 'facet', 1.0, 4, Row, Column)提取出图像中灰度极大值的坐标
mod_parallels_xld (ParallelRoadEdges, Part, ModParallelRoadEdges, ExtParallelRoadEdges, 0.3, 160, 220, 10)修补平行的轮廓线
split_contours_xld (Polygons, SplitContours, 'polygon', 1, 5)
regress_contours_xld (SplitContours, RegressContours, 'drop', 1)
select_xld_point (Contours, SelectedContours, PointRow, PointCol)选择包含指定点的轮廓线。
symm_difference_closed_contours_xld (BoundarySet1, BoundarySet2, ContoursDifference)提取封闭对称轮廓线的不同部分
test_self_intersection_xld (Contours, 'false', DoesIntersect)检测轮廓线本身是否存在交叉点
test_xld_point (Contour1, PointRow, PointCol, IsInsideContour1)测试提供的点是否被轮廓线包含在内
union2_closed_contours_xld (BoundarySet1, BoundarySet2, ContoursUnion)从多条轮廓线中合并成封闭的轮廓线
union2_closed_polygons_xld (BoundarySet1, BoundarySet2, PolygonsUnion)从多个多边形的轮廓线中提取封闭的轮廓线。
union_cotangential_contours_xld (ContourConcat4, UnionContours4, FitClippingLength, FitLength, TestMaxTangAngle, MaxDist, MaxDistPerp, MaxOverlap, 'attr_forget')
tile_images (Images4, TiledImage3, 2, 'horizontal')将幅图像合并成一幅图像
select_contours_xld (RegressContours, SelectedContours, 'curvature', 0, 0.5, 0, 0)根据线的特征选择轮廓线。
select_shape_xld (SelectedContours, SelectedEdges, 'contlength', 'and', 15, 500)根据线的形态特征选择轮廓线。
vector_to_proj_hom_mat2d ([RowUL,RowUR,RowLR,RowLL]+0.5, [ColUL,ColUR,ColLR,ColLL]+0.5, [160,160,340,340]+0.5, [250,550,550,250]+0.5, 'normalized_dlt', [], [], [], [], [], [], HomMat2D, Covariance)根据图像坐标和实际坐标得到坐标的变换关系。
union_collinear_contours_ext_xld (UnionContours, UnionContours, MaxDistAbs, MaxDistRel, 5, 0.5, 0, -1, 1, 1, 1, 1, 1, 0, 'attr_keep')连接同线的轮廓线,提取的轮廓比union_collinear_contours_xld更精准。
orientation_points_xld (WireSegment, RefOrientation)
corner_response (ImaAmp, ImageCorner, 3, 0.04)提取图像中的角
gen_parallels_xld (Polygon, ParallelLines, 50, 100, rad(10), 'true')找到平行的直线