基于haclon的曲线针识别实例

来源:互联网 发布:谷歌拍照软件 编辑:程序博客网 时间:2024/04/30 09:22

基于haclon的曲线针识别实例 
本例子介绍了一个利用haclon对曲线针进行识别的例子,目标是计算并确定曲线针的位置和方向,曲线针如图所示:

这里写图片描述 
1.启动HDevelop,新建一个程序: 
这里写图片描述 
2.读入图片: 
在输入算子函数处输入read_image 
这里写图片描述 
输入图片变量名:Image1,图片的路径点击filename.read选取图片路径。 
点击输入会看到程序输入区出现输入图片命令的代码 
这里写图片描述 
运行程序: 
这里写图片描述 
窗口左侧图像变量区会出现相应的图像变量,并且图像窗口显示读入的图像。 
3.选取可视化-工具-灰度直方图命令 
这里写图片描述 
点击阈值旁边的使能 。调整阈值的最小值和最大值,调整过程中可以看到阈值调整的实时图: 
这里写图片描述 
当阈值为10到55左右时图像2值处理效果较好。 
4.添加阈值分割函数threshold。 
设置阈值最小值为10,最大值为55.点击输入插入代码 
这里写图片描述 
这里写图片描述 
5.添加后继函数 
选中刚插入的程序行,打开菜单栏中的 建议-后继函数。选择connection算子。目的是把选择的像素分割成区域。 
这里写图片描述 
单击确定。通过connection计算得到的区域用不同的颜色显示。 
这里写图片描述 
6.鼠标移到图形变量ConnectedRegions右键显示目录—选择。出现如下图所示,测量出来的区域。 
这里写图片描述 
发现区域数比曲线针数多了1个,因为图像左上角有干扰图像。 
7.根据特征值选择区域排除干扰区域 
点击可视化—工具—特征值直方图工具,它有助于选择拥有共同属性或特性的区域。 
这里写图片描述 
激活area旁边的使能 。移动最小和最大值剔除干扰区域: 
这里写图片描述 
点击插入代码,运行程序查看区域,发现区域数为13,干扰区域已经被剔除 
这里写图片描述 
添加orientation_region(SelectedRegions,Phi) 得到针的方向,返回的Phi为针的方向角度 
area_center(SelectedRegions,Area,Row,Cloumn)返回每个针区域的中心位置。 
运行程序得到结果,结果在控制变量区域有显示 
这里写图片描述 
8.在循环体中访问检测结果。 
点击菜单栏—算子—控制—for 
设置参数: 
这里写图片描述 
|Phi|-1是HDevelop语言的一部分,|Phi|表示元组元素的个数。点击输入。 
然后在for循环中添加如下代码: 
set_tposition(3600,Row[index],Cloumn[Index]) 
这里写图片描述 
write_string(3600,deg(Phi[Index])+’degree’) 
这里写图片描述 
算子set_tposition把图形窗口中的文本光标位置移至索引Index所对应的区域的中心位置。3600是目标图形窗口的窗口句柄。显示在窗口标题栏 
Row[Index]是HDevelop语言的另外一个算子。通过它来访问突破了元组的一个元素。 
算子write_string的作用是在图形窗口中,在当前光标位置输出指定字符。deg()是把弧度转换为角度的意思。 
9.最后结果如图所示: 
这里写图片描述 
这里写图片描述

1 0
原创粉丝点击