码迷,mamicode.com
首页 > 其他好文 > 详细

Halcon 10.0 Sample:完整性检查(圆形)

时间:2014-09-10 17:34:51      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   ar   for   2014   

 1 * ball.hdev: Inspection of Ball Bonding
 2 * 球接合检查 Comment Time:2014/9/10
 3 *核心思想:1.白色区域用作自动ROI,黑色区域是目标
 4 *        2.Opening_circle:圆形开算子是关键  
 5 *关闭窗口刷新,关闭窗口,打开窗口[728,512]
 6 dev_update_window (off)
 7 dev_close_window ()
 8 dev_open_window (0, 0, 728, 512, black, WindowID)
 9 *读取图像并显示
10 read_image (Bond, die/die_03)
11 dev_display (Bond)
12 set_display_font (WindowID, 14, mono, true, false)
13 *显示F5提示信息并暂停
14 disp_continue_message (WindowID, black, true)
15 stop ()
16 *固定二值化,取白色区域部分
17 threshold (Bond, Bright, 100, 255)
18 *将所有区域变换成最小的外接矩形,相当于做ROI
19 shape_trans (Bright, Die, rectangle2)
20 *设置显示方式:绿色,边缘模式,线条宽度3
21 dev_set_color (green)
22 dev_set_line_width (3)
23 dev_set_draw (margin)
24 dev_display (Die)
25 disp_continue_message (WindowID, black, true)
26 stop ()
27 *利用生成的外接矩形做ROI
28 reduce_domain (Bond, Die, DieGrey)
29 *在ROI中二值化取黑色区域,并按面积标准填充
30 threshold (DieGrey, Wires, 0, 50)
31 fill_up_shape (Wires, WiresFilled, area, 1, 100)
32 *设置显示模式:填充模式,红色
33 dev_display (Bond)
34 dev_set_draw (fill)
35 dev_set_color (red)
36 dev_display (WiresFilled)
37 disp_continue_message (WindowID, black, true)
38 stop ()
39 *圆形式的开运算:先腐蚀后膨胀,消除颗粒(精髓算子)
40 opening_circle (WiresFilled, Balls, 15.5)
41 dev_set_color (green)
42 dev_display (Balls)
43 disp_continue_message (WindowID, black, true)
44 stop ()
45 *单个区域连接成区域数组
46 connection (Balls, SingleBalls)
47 *按圆度来进行区域的筛选,完成定位功能
48 select_shape (SingleBalls, IntermediateBalls, circularity, and, 0.85, 1.0)
49 *已OK的区域进行从左至右排序
50 sort_region (IntermediateBalls, FinalBalls, first_point, true, column)
51 dev_display (Bond)
52 dev_set_colored (12)
53 dev_display (FinalBalls)
54 disp_continue_message (WindowID, black, true)
55 stop ()
56 *求区域的最小外接圆
57 smallest_circle (FinalBalls, Row, Column, Radius)
58 NumBalls := |Radius|
59 Diameter := 2*Radius
60 meanDiameter := sum(Diameter)/NumBalls
61 mimDiameter := min(Diameter)
62 dev_display (Bond)
63 *显示最小外接圆
64 disp_circle (WindowID, Row, Column, Radius)
65 *书写文字标识
66 dev_set_color (white)
67 for i := 1 to NumBalls by 1
68     if (fmod(i,2)=1)
69         disp_message (WindowID, D: +Diameter[i-1], image, Row[i-1]-2.7*Radius[i-1], max([Column[i-1]-60,0]), white, false)
70     else
71         disp_message (WindowID, D: +Diameter[i-1], image, Row[i-1]+1.2*Radius[i-1], max([Column[i-1]-60,0]), white, false)
72     endif
73 endfor
74 *关闭窗口
75 * dump_window (WindowID, tiff_rgb, ./ball)
76 dev_set_color (green)
77 dev_update_window (on)
78 disp_continue_message (WindowID, black, true)
79 stop ()
80 dev_close_window ()

bubuko.com,布布扣

Halcon 10.0 Sample:完整性检查(圆形)

标签:style   blog   http   color   os   io   ar   for   2014   

原文地址:http://www.cnblogs.com/ljfy-yjw/p/3964721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!