加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2012-12-27 18:35:55)
标签:

halcon

赋值

区域生长算法

找出焊接点

it

分类: G.工业技术

赋值

Assign:对数据赋值,对数组的初始化。但不能对数组中的某一个值进行赋值。

         举例:Tuple1 := [1,0,3,4,5,6,7,8,9] //对数组进行初始化

               Val := sin(1.2) + cos(1.2) //对某一个值进行赋值

               Tuple2 := [] //数组定义

Insert:对数组中的某一个值进行赋值。

         举例:Tuple1[1] := 2 //将Input和Result赋值为Tuple1

 

区域生长算法 : 既是根据事先定义的准则将像素或者子区域聚合成更大的区域。基本方法是以“一组”种子开始,将与种子性质相似(灰度级或颜色的特定范围)的相邻像素附加到生长区域的种子上。

 

Halcon中的区域生长算子( 区域生长算法,将图象被分割为区域 ):


regiongrowing ( Image : Regions : Row, Column, Tolerance, MinSize : ) 

  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 : )在窗体中显示圆形区域

 

 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:Halcon学习
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有