1.p_determine_ellipse_contours (Image, EllipseContoursLarge, EllipseContoursSmall, false, NumberLarge, NumberSmall)
确定椭圆轮廓-确定大小椭圆轮廓,EllipseContoursLarge为大圆,EllipseContoursSmall为小圆,后续需要将两者组合到一起。
2.concat_obj(a,b,c)
连接两个对象a,b组成新的区域c
3.get_circle_pose()
从圆的 2D 透视投影确定圆的 3D 姿态,获取圆的位置
4.dev_update_off()
一般这两个函数分别位于程序的开头和结尾
光标右击函数,选择显示函数,可以看到三个函数
dev_update_pc ('off')
dev_update_var ('off')
dev_update_window ('off')
return ()
解释
dev_update_window:定义 程序执行打开和关闭期间,图像对象是否在图形窗口中显示;在单步模式下,该规则
无效,单个算子调用以后,对象总是显示在图形窗口上;在测量一系列算子的运行时
间的时候,应该设置为OFF,以减少HDevelop中GUI更新的运行时间的影响.
dev_update_pc:在程序执行期间,控制程序计数器的更新。
dev_update_var:在程序执行期间控制变量窗口的更新或关闭,则每当程序修改变量
时,更改变量窗口(图标和控件变量)的内容。
主要是减少程序的运行时间
5.gen_parallel_contour_xld(Contours, ParallelContours, Mode, Distance)
生成与目标区域相隔固定距离的平行轮廓
根据指定的方式生成平行于原来的xld轮廓且距离为Distance的xld轮廓。
这里的Mode设置为regression_norla表示回归方式,针对任意的xld轮廓都能用;而gradient和contour_normal需要xld具有方向性,对于没有方向性的xld不适用。
6.set_display_font()
设置窗口字体
7.edges_sub_pix()
提取亚像素边缘,可以利用Deriche、Lanser、Shen和Canny滤波器
8.select_shape_xld (Edges, Holes, 'circularity', 'and', 0.7, 1.0)
选择形状(圆、矩形、点集……)
9.sort_contours_xld(Contours : SortedContours : SortMode, Order, RowOrCol : )
对图像中的轮廓进行排序,为每一个子轮廓获得相应的编号,方便后续处理操作。
排序方式有多种,根据第三个参数来确定
10.smallest_circle_xld()
最小封闭圆的圆心和半径
11.distance_pc (Contours, Row, Column, DistanceMin, DistanceMax)
*计算点和轮廓之间的距离
*计算一个或多个点与单个轮廓之间的距离
*参数1:输入xld轮廓
*参数2:点的行坐标
*参数3:点的列坐标
*参数4:返回点与轮廓之间的最小距离
*参数5:返回点与轮廓之间的最大距离
12.disp_cross 在窗口中显示十字
13.get_string_extents 功能:获取一个字符串的空间大小
14.cout_seconds(Seconds1)
统计运算时间算子,起始时间为Seconds1
15.find_planar_calib_deformable_model()
模板匹配,基于线性变形匹配
带标定的需要先读入摄像机内参 read_cam_par和外参 read_pose
1.创建模板:create_planar_calib_deformable_model()
create_planar_uncalib_deformable_model()
2.寻找模板:find_planar_calib_deformable_model()
find_planar_uncalib_deformable_model()
3.释放模板:clear_deformable_model()
简单汇总下Halcon模板匹配的几种方式_Zeroforst的博客-CSDN博客_halcon 模板匹配
16.tuple_select_range()
选择一个元组中的一个元素
halcon算子盘点:Chapter 18:元组Tuple_无水先生的博客-CSDN博客_tuple_select_range
17.union2()/union1()
将两个区域合并成一个区域/将所有区域合并成一个
18.connection()
将区域分开
19.affine_trans_contour_xld ()
对xld轮廓进行任意仿射2D变换
20.projective_trans_contour_xld()
对 XLD 轮廓应用投影变换,projective_trans_contour_xld将齐次矩阵HomMat2D指定的投影变换应用于 Contours 中的轮廓,并在ContoursProjTrans中返回变换后的轮廓。
21.area_center (Rectangle, Area, RowRef, ColumnRef)
得到区域的面积和中心点坐标信息,
22.lines_gauss(Image : Lines : Sigma, Low, High, LightDark, ExtractWidth, LineModel, CompleteJunctions : )
检测线条以及其宽度
mage (input_object) :输入图像
Lines (output_object) :检测线条(XLD)
Sigma (input_control) :高斯滤波值
Low (input_control) :滞后阈值分割的低阈值
High (input_control) :滞后阈值分割的高阈值
LightDark (input_control) :提取线条类型( ‘dark’,‘light’)
ExtractWidth (input_control) :是否提取线宽(‘false’,‘true’)
LineModel (input_control) :用来调整线条位置和宽度的线模型(‘bar-shaped’, ‘gaussian’, ‘none’, ‘parabolic’)
CompleteJunctions (input_control) :在断连的部分是否添加节点使线条连续(‘false’, ‘true’)
23.union_collinear_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, MaxShift, MaxAngle, Mode : )
将近似共线轮廓合并
Contours (input_object) :输入XLD轮廓
UnionContours (output_object) :合并后输出轮廓
MaxDistAbs (input_control) :沿参考轮廓的回归线测量两个轮廓之间的最大间隙长度(间隙在参考轮廓拟合直线上的投影)。
MaxDistRel (input_control) :间隙在参考轮廓拟合直线上的投影长度与参考轮廓长度的比值上限(见下面详解)
MaxShift (input_control) :第二个轮廓与参考轮廓拟合直线的最大距离
MaxAngle (input_control) :两个轮廓拟合直线的角度( 0.0 ≤ MaxAngle ≤ 0.78539816339(45度))
Mode (input_control) :定义轮廓属性处理的模式,即,是否保留或丢弃轮廓属性
Halcon union_collinear_contours_xld详解_智信仁勇严道的博客-CSDN博客_union_collinear_contours_xld
24.photometric_stereo()
根据光度立体技术重建图像
Images (input_object) :输入图像(一个至少包含3张图像(每张图像光照角度不同)的图像数组)
HeightField (output_object) :根据多个图像重构的高度信息图
Gradient (output_object) :根据多个图像重构的梯度信息图
Albedo (output_object) :根据多个图像重构的反射率信息图
Slants (input_control) :文中详细说明
Tilts (input_control) :文中详细说明
ResultType (input_control) :文中说明
ReconstructionMethod (input_control) :文中说明
GenParamName (input_control) :文中说明
GenParamValue (input_control) :文中说明
光度立体法可以根据二维纹理信息提取出三维模型。photometric_stereo算子至少需要三张图,这些图是在相机和物体相对位置不变条件下(Note),通过不同方向打光获取的。
25.var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
基于均值和方差的局部阈值法
26.watersheds_threshold(Image : Basins : Threshold : )
通过阈值实现图像的分水岭算法分割
分水岭算法基本思想:勇哥的实验:halcon阈值分割算子细谈(七)拓扑分割算子 watersheds系列算子(分水岭算子),梯度的分水岭,距离变换分水岭-工业视觉/halcon-少有人走的路
27.人机交互绘图函数
HALCON 算子函数——Chapter 6 : Graphics_爱上876的博客-CSDN博客
28.gen_cross_contour_xld(: Cross : Row, Col, Size, Angle )
生成交叉十字线
29.polar_trans_image_ext(Image : PolarTransImage : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height, Interpolation : )
极坐标转换,
Image : 待处理图片
PolarTransImage :处理后的图片
Row, Column, 极坐标原点坐标(圆心坐标)
AngleStart, AngleEnd, (弧度pi)开始、结束的弧度如上图,0弧度就是对应刻度2.5,pi/2对应5,逆时针
RadiusStart, RadiusEnd, 极坐标开始的极长,一般是0,和圆半径r
Width, Height, 图片长宽
Interpolation :未知
将一个指针式仪表的表盘展成线性
30.distance_transform()
该算子的作用是计算对region转换距离
使用场合: 他是用来测距离的,所以可以用来测试一些线路有无破损。对于线路的破损可以结合skeleton 来说。这个算出区域的骨架,这样的话,我可以计算region到骨架的距离是否大致相等 ,这样就可以检测是否线路有缺陷。distance_taransform 还可以跟max_min_gray 来结合起来使用。这样的话,可以算出这个距离region 的最里region最远和最近点
31.union_adjacent_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )
合并轮廓
Contours (input_object) :输入轮廓
UnionContours (output_object) :合并后输出轮廓
MaxDistAbs (input_control) :两个轮廓端点间的最小距离控制参数
MaxDistRel (input_control) :两个轮廓端点间的最小距离与最长轮廓长度的比值控制参数
Mode (input_control) :定义轮廓属性处理的模式,即,是否保留或丢弃轮廓属性
32.XLD合集
Halcon XLD 算子集合_小南/南儿的博客-CSDN博客_halcon xld 算子
33.dist_ellipse_contour_points_xld
计算所有轮廓,内的点到一个椭圆的距离。
34.gen_contour_polygon_xld ()
gen_contour_polygon_xld 意思_洋航的博客-CSDN博客
35.line_orientation()
获取直线角度、两直线夹角,可用于计算拟合后的直线方向。
36.junctions_skeleton()
获取仅含有相交区域端点的区域。
37.intersection()
计算两个区域的交集
Halcon 算子 intersection_必须奔跑的Zheng的博客-CSDN博客_halcon intersection
38.complement()
返回一个区域的补集
39. tuple_sort_index()
多区域根据面积挑选想要的obj
area_center(regions,areas)
tuple_sort_index(areas,indexs)
tuple_sort_index算子将一组数组进行升序排列,然后将其在原数组的index按升序放入indexs中,
例如原数组areas=[200,10,30,500,80],经过升序后数组应该为[10,30,80,200,500],即经过升序后(原数组)索引排列为indexs=[1,2,4,0,3]。
这里“1”对应面积10,即面积10在原数组的索引值1
“4”对应面积80,即面积80在原数组的索引值4
当我们假如需要挑选最大面积的obj,即select_obj(regions,indexs[|indexs|-1]+1),当我们假如需要挑选第二小面积的obj,即select_obj(regions,indexs[1]+1)