Halcon 10.0 Sample:完整性检查(圆形)
* ball.hdev: Inspection of Ball Bonding
* 球接合检查 Comment Time://
*核心思想:.白色区域用作自动ROI,黑色区域是目标
* .Opening_circle:圆形开算子是关键
*关闭窗口刷新,关闭窗口,打开窗口[,]
dev_update_window ('off')
dev_close_window ()
dev_open_window (, , , , 'black', WindowID)
*读取图像并显示
read_image (Bond, 'die/die_03')
dev_display (Bond)
set_display_font (WindowID, , 'mono', 'true', 'false')
*显示F5提示信息并暂停
disp_continue_message (WindowID, 'black', 'true')
stop ()
*固定二值化,取白色区域部分
threshold (Bond, Bright, , )
*将所有区域变换成最小的外接矩形,相当于做ROI
shape_trans (Bright, Die, 'rectangle2')
*设置显示方式:绿色,边缘模式,线条宽度3
dev_set_color ('green')
dev_set_line_width ()
dev_set_draw ('margin')
dev_display (Die)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*利用生成的外接矩形做ROI
reduce_domain (Bond, Die, DieGrey)
*在ROI中二值化取黑色区域,并按面积标准填充
threshold (DieGrey, Wires, , )
fill_up_shape (Wires, WiresFilled, 'area', , )
*设置显示模式:填充模式,红色
dev_display (Bond)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (WiresFilled)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*圆形式的开运算:先腐蚀后膨胀,消除颗粒(精髓算子)
opening_circle (WiresFilled, Balls, 15.5)
dev_set_color ('green')
dev_display (Balls)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*单个区域连接成区域数组
connection (Balls, SingleBalls)
*按圆度来进行区域的筛选,完成定位功能
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
*已OK的区域进行从左至右排序
sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')
dev_display (Bond)
dev_set_colored ()
dev_display (FinalBalls)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*求区域的最小外接圆
smallest_circle (FinalBalls, Row, Column, Radius)
NumBalls := |Radius|
Diameter := *Radius
meanDiameter := sum(Diameter)/NumBalls
mimDiameter := min(Diameter)
dev_display (Bond)
*显示最小外接圆
disp_circle (WindowID, Row, Column, Radius)
*书写文字标识
dev_set_color ('white')
for i := to NumBalls by
if (fmod(i,)=)
disp_message (WindowID, 'D: '+Diameter[i-], 'image', Row[i-]-2.7*Radius[i-], max([Column[i-]-,]), 'white', 'false')
else
disp_message (WindowID, 'D: '+Diameter[i-], 'image', Row[i-]+1.2*Radius[i-], max([Column[i-]-,]), 'white', 'false')
endif
endfor
*关闭窗口
* dump_window (WindowID, 'tiff_rgb', './ball')
dev_set_color ('green')
dev_update_window ('on')
disp_continue_message (WindowID, 'black', 'true')
stop ()
dev_close_window ()

Halcon 10.0 Sample:完整性检查(圆形)的更多相关文章
- Halcon 10.0:Sample 分割边缘拟合圆Circles.hdev
处理流程:快速二值化(区域)->获取区域边缘->截取边缘->膨胀边缘区域(定位)->定位区域进行边缘检测->边缘分割:线和圆->选择属性为圆的弧->拟合圆 * ...
- Halcon 10.0:Hobject图像转CBitmap
void HImage2CBitmap(Hobject pImage,CBitmap *wImage) { char lpcsType[MAX_STRING]; Hlong lPointer,widt ...
- kafka0.9.0及0.10.0配置属性
问题导读1.borker包含哪些属性?2.Producer包含哪些属性?3.Consumer如何配置?borker(0.9.0及0.10.0)配置Kafka日志本身是由多个日志段组成(log segm ...
- Visual Studio 10.0设置引用HalconDotNet.dll
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010435562/article/details/8858638 開始做Halcon的上位机.选用 ...
- Kafka: Producer (0.10.0.0)
转自:http://www.cnblogs.com/f1194361820/p/6048429.html 通过前面的架构简述,知道了Producer是用来产生消息记录,并将消息以异步的方式发送给指定的 ...
- IEEEXtreme 10.0 - Inti Sets
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Inti Sets 题目来源 第10届IEEE极限编程大赛 https://www.hackerrank.c ...
- IEEEXtreme 10.0 - Dog Walking
博客中的文章均为 meelo 原创,请务必以链接形式注明 本文地址 Xtreme 10.0 - Dog Walking 题目来源 第10届IEEE极限编程大赛 https://www.hackerra ...
- IEEEXtreme 10.0 - Painter's Dilemma
这是 meelo 原创的 IEEEXtreme极限编程比赛题解 Xtreme 10.0 - Painter's Dilemma 题目来源 第10届IEEE极限编程大赛 https://www.hack ...
- IEEEXtreme 10.0 - Ellipse Art
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Ellipse Art 题目来源 第10届IEEE极限编程大赛 https://www.hackerrank ...
随机推荐
- Yii2.0中文开发向导——Where条件查询全解析
在Yii的Model里进行查询的时候 where是必不可少的.Where方法声明为 static where( $condition ) 其中参数 $condition类型为字符串或者数组 1.字符串 ...
- enbale blakboxing
chrome://flags/#enable-devtools-experiments
- master page
<?xml version="1.0"?><configuration> <system.web> <pages clientID ...
- SQL SERVER数据库的表中修改字段属性被阻止“Prevent saving changes that require table re-creation”
1.启动SQL SERVER,选择工具—>选项,去掉“ 阻止保存要求重新创建表的更改”前面的勾. 2.选择设计器 3.去掉“阻止保存要求重新创建表的更改”前面的对号,点击OK. 重新启动SQL ...
- python(五)文件操作
1.打开文件 f = open('db','r') #只读 f = open('db','w') #只写,先清空原文件 f = open('db','x') #文件存在,报错,不存在,创建 ...
- 【iOS】我的Objective-C学习笔记
1.代码中增加标记 #pragma mark - #pragma mark 2.点语法 Person *p = [Person new]; // 点语法的本质还是方法调用 p.age = 10; // ...
- Oracle介绍(初学者必须知道的)
1.为什么学习数据库?(两个概念) 数据库的概念: 数据库是按照数据结构组织,存储和管理数据的仓库. 数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增. ...
- 阻抗计算(用SI9000如何计算微带线)
用SI9000如何计算微带线 一.几个概念: 阻抗的定义:在某一频率下,电子器件传输信号线中,相对某一参考层,其高频信号或电磁波在传播过程中所受的阻力称之为特性阻抗,它是 ...
- NSTimer(定时器)
[_timer fire]; fire并不是启动一个定时器,只是执行一次定时器事件(触发一次定时器事件)而已; 注意:不影响定时器设置的时间,即,不影响之前设定的使用,定时器该怎么跑就怎么跑,fire ...
- [poj3321]Apple Tree(dfs序+树状数组)
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 26762 Accepted: 7947 Descr ...