Halcon学习之赋值、区域生长算法 、找出焊接点

标签:
halcon赋值区域生长算法找出焊接点it |
分类: G.工业技术 |
赋值
Assign:对数据赋值,对数组的初始化。但不能对数组中的某一个值进行赋值。
Insert:对数组中的某一个值进行赋值。
区域生长算法 : 既是根据事先定义的准则将像素或者子区域聚合成更大的区域。基本方法是以“一组”种子开始,将与种子性质相似(灰度级或颜色的特定范围)的相邻像素附加到生长区域的种子上。
Halcon中的区域生长算子( 区域生长算法,将图象被分割为区域 ):
regiongrowing ( Image : Regions : Row, Column, Tolerance, MinSize :
)
例 :regiongrowing (Image, Regions, 3, 3, 6, 100)
http://hi.csdn.net/attachment/201008/5/0_12809712796ce6.gif、找出焊接点" />
处理前的图像
http://hi.csdn.net/attachment/201008/5/0_1280971289PEV9.gif、找出焊接点" />
处理后的图像(将图像划分为一个个区域)
找出焊接点
这个例程是要检查图中焊接点,并获取焊接点的直径。
http://hi.csdn.net/attachment/201008/5/0_1280972210fzP8.gif、找出焊接点" />
http://hi.csdn.net/attachment/201008/5/0_12809722265HZ5.gif、找出焊接点" />
处理过程:
首先,分离比较明亮的区域,然后将找出来的结果,转换成最小的平行矩形,即获得了图像处理的ROI(处理后的图像如图2所示)。
这里采用了阈值分割:将图像中的灰度值处于某一指定灰度值范围内全部点选到输出区域中。threshold (Bond, Bright, 100, 255)
http://hi.csdn.net/attachment/201008/5/0_1280972248rRr4.gif、找出焊接点" />
http://hi.csdn.net/attachment/201008/5/0_12809722653H9d.gif、找出焊接点" />
http://hi.csdn.net/attachment/201008/5/0_12809722734TkW.gif、找出焊接点" />
然后,在ROI区域内选择比较暗的区域,移除不适合的区域(利用形状,面积等参数),把物体抽出变成一个独立的物,找出圆形物体,并且排列物体即可。
这里采用了
fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : )
填充满足给定的图形特征的区域。
opening_circle ( Region : RegionOpening : Radius : )
打开具有圆形结构的区域
select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : )
选择满足要求的区域
sort_region ( Regions : SortedRegions : SortMode, Order, RowOrCol : )
根据他们的位置关系进行排序
例:sort_region (, , 'first_point', 'true', 'column')
获取系统架构(Windows_NT等):OpSystem := environment('OS')
smallest_circle ( Regions : : : Row, Column, Radius ) 获取圆形区域的参数
disp_circle ( : : WindowHandle, Row, Column, Radius : )在窗体中显示圆形区域