Halcon算子解释

1.p_determine_ellipse_contours (Image, EllipseContoursLarge, EllipseContoursSmall, false, NumberLarge, NumberSmall)

确定椭圆轮廓-确定大小椭圆轮廓,EllipseContoursLarge为大圆,EllipseContoursSmall为小圆,后续需要将两者组合到一起。

Halcon算子解释_第1张图片

 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 )

生成交叉十字线

Halcon算子解释_第2张图片

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 :未知

将一个指针式仪表的表盘展成线性

Halcon算子解释_第3张图片

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()

返回一个区域的补集 

Halcon算子解释_第4张图片

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)
 

你可能感兴趣的:(图像处理,Halcon,图像处理)