《某halcon视频 算子篇》【最后更新日期:16/03/12

     可以称之笔记吧~


第1讲 region的点线生成及其距离 48'


gen_region_points()

画点成区域【参数可以使用数组,例如这种形式:[x1,x2],[y1,y2] ;前面[]里的都是row坐标,后面[]里的都是column坐标】


disp_line()

在两点之间生成一条直线(没有输出变量不能保存,因此不占内存)


get_region_points()

获取组成区域的点


gen_region_line()

在两点之间生成一条直线(可以保存)


intersection()

region与(可用来求两直线的交点


orientation_region()

获得区域的方向,与水平X轴的夹角


distance_pr()

求point与region的距离  


distance_pp()

求point与point的距离


distance_rr_min()

求两个region的最小距离并返回最小距离的点对


distance_lr()

求线与区域的距离


distance_pc()

求点到轮廓的距离


distance_pl()

求点到直线的距离(若求点到线段的距离,求的是点到线段所在直线的距离)


distance_ps()

求点到线段的距离


distance_cc()

求两个轮廓的距离


第2讲 点、骨架、网格区域、鞍点、点线投影55'


select_region_point()

选中一个固定位置坐标上存在的区域


skeleton()

得到一个区域的骨架,骨架为一个像素宽


junctions_skeleton()

寻找骨架的交点和结束点


gen_grid_region()

生成一个网格区域【gen是generate的缩写】,在滤除杂质方面比较好用。通过修改网格密度,控制筛选粒度。


projection_pl()

点到线的投影


saddle_points_sub_pix()

找鞍点【一个方向上值最大,另一个方向上值最小(灰度值)】

A point is accepted to be a saddle point if the absolute values of both eigenvalues of the Hessian matrix are greater thanThreshold  but their signs differ. 

如果海赛阵特征值的绝对值都比阈值大,且它们的符号不同,那么这个点则被认为是鞍点。


gen_cross_contour_xld()

为每个输入点生成一个交叉形状的XLD轮廓


第3讲 关于线 40'


orientation_region()

计算区域的方向(-π/2< θ <=π/2)

用的是这个算子elliptic_axis(),求出来的phi角度。话说,这是一个求等效椭圆参数的算子。

而这个算子是通过moments_region_2nd()算子,使用图形的Geometric Moments(几何矩)来找到的区域质心和区域方向。


line_orientation()

计算线的方向(-π/2<= θ <π/2)

经实验测试:将输入直线转换成向量,以直线上任意一点作为基准点,做一条横线,作为X轴。使向量顺时针转动至与X轴重合,若旋转角度>90°,则取逆时针方向旋转的角度加负号;若旋转角度<90°,则取该角度为夹角,即直线的方向。


tuple_abs()求绝对值;tuple_deg()弧度向角度的转换


line_position()

计算线的中心,长度和方向【其中方向和line_orientation()取的值相同】


angle_ll()

计算两条直线的夹角(-π<= θ <π)

经实验测试:求夹角的过程是,将直线A和B转换成向量,以交点为中心,将A向量逆时针向B向量的方向旋转至与B向量重合,若旋转的角度>180°,则取顺时针方向旋转的角度加负号;若旋转角度<180°,则取该角度为夹角。


angle_lx()

计算直线和水平轴的夹角(-π<= θ <π)

经实验测试:将输入直线转换成向量,以起始点作为基准点,做一条横线,作为X轴。使向量顺时针转动至与X轴重合,若旋转角度>180°,则取逆时针方向旋转的角度加负号;若旋转角度<180°,则取该角度为夹角。


move_region()

移动一个区域(通过后两个参数给出的向量来实现)


get_mbutton()

获得鼠标按下时的坐标(Button这个参数,返回的是刚才做了什么动作,也就是刚才到底按了哪个键)


draw_region()

手动画一个区域(运行时,等待鼠标输入画线)

-----------------------------------------------------------------------------------------------------------------------------------------------------------2016/2/25 17:53

bandpass_image()

使用带通滤波器提取边缘【表示不会用这个算子,结果图像跟一坨屎一样】


get_region_runs()

输入一个区域,将该区域横向切条,切条的宽度为1像素,输出为切条的纵坐标和左右两端的横坐标


gen_region_runs()

输入一个纵坐标和两个横坐标,产生一个以此纵坐标为水平线,从左至右水平延展的横线区域


boundary()

获取一个区域的轮廓

-----------------------------------------------------------------------------------------------------------------------------------------------------------2016/3/12 17:06


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值