Halcon 笔记3 形态学
Halcon 三大数据类型:
(1)图像
(2)区域
(3)XLD
查看时间工具
如果想让图像减少,则进行腐蚀(或者使用开运算),反之,则进行膨胀(或闭运算)
腐蚀后再进行膨胀,相当于进行开运算。因为腐蚀比膨胀去掉的更多。
erosion_circle (WiresFilled, RegionErosion, 15.5)
dilation_circle (RegionErosion, RegionDilation, 15.5)
opening_circle (WiresFilled, Balls, 15.5)//使用圆形的腐蚀,对圆形的作用比较大,如果比较圆的话,则保留
opening或者二值化得到的都是一个区域。
Blob分析典型实例
分割电路板焊点

* ball.hdev: Inspection of Ball Bonding
*
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')
disp_continue_message (WindowID, 'black', 'true')
stop ()
threshold (Bond, Bright, , ) //二值化
shape_trans (Bright, Die, 'rectangle2') //将区域进行形状转换,rectangle1表示不带方向
dev_set_color ('green')
dev_set_line_width ()
dev_set_draw ('margin') //使用边缘描述模式
dev_display (Die)
disp_continue_message (WindowID, 'black', 'true')
stop ()
reduce_domain (Bond, Die, DieGrey)//抠图,在抠出的图中进行处理
threshold (DieGrey, Wires, , ) //二值化
*fill_up是不带特征的填充,不管空洞有多大,都会进行填充
fill_up_shape (Wires, WiresFilled, 'area', , )//填充空洞,仅对面积在1到100之间的空洞进行填充
dev_display (Bond)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (WiresFilled)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*opening 开运算,对应图像腐蚀
erosion_circle (WiresFilled, RegionErosion, 15.5)
dilation_circle (RegionErosion, RegionDilation, 15.5)
opening_circle (WiresFilled, Balls, 15.5)//使用圆形的腐蚀,对圆形的作用比较大,如果比较圆的话,则保留
dev_set_color ('green')
dev_display (Balls)
*dev_display (RegionDilation)
disp_continue_message (WindowID, 'black', 'true')
stop ()
connection (Balls, SingleBalls)//区域打散
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)//形状选择
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')
disp_message (WindowID, 'D: ' + Diameter$'.4', 'image', Row - * Radius, Column, 'white', 'false')
dev_update_window ('on')

实践是检验真理的唯一标准
Halcon 笔记3 形态学的更多相关文章
- opencv-学习笔记(5)形态学转变
opencv-学习笔记(4)形态学转变 本章讲了几种形态学操作 腐蚀erode 膨胀dilate 开运算MORPH_OPEN 闭运算MORPH_CLOSE 形态学梯度MORPH_GRADIENT 礼帽 ...
- Halcon 笔记2 Blob分析
1. 数组操作 2. 可视化-更新窗口 (1)单步模式-总是:则可以自动显示图像: (2)单步模式-从不:需要调用显示函数才能显示图像. (3)单步模式-清空显示:将原图清除,再显示新图 3. 图像处 ...
- Halcon 笔记1
Halcon Example位置: C:\Users\Public\Documents\MVTec\HALCON-13.0\examples 安装位置:C:\Program Files\MVTec\H ...
- halcon笔记1
* 获得二值图 Image_binread_image(Image, 'C:/Alex/halcon/test.bmp') // 读图 threshold (Image, Regions, , ) / ...
- OpenCV学习笔记(9)——形态学转换
不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 形态学操作是根据图像形状进行的简单操作.一般情况下对二值化图像进行操作.需要的参数有两个,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操 ...
- halcon学习笔记——机器视觉工程应用的开发思路【转】
转自:http://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...
- Halcon学习笔记——机器视觉应用工程开发思路及相机标定
机器视觉应用工程开发思路 机器视觉应用工程主要可划分为两大部分,硬件部分和软件部分. 1.硬件部分,硬件的选型至关重要,决定了后续工作是否可以正常开展,其中关键硬件部分包括:光源,相机以及镜头. 2. ...
- Halcon学习笔记1
转:https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...
- Halcon学习笔记之支持向量机(二)
例程:classify_halogen_bulbs.hdev 在Halcon中模式匹配最成熟最常用的方式该署支持向量机了,在本例程中展示了使用支持向量机对卤素灯的质量检测方法.通过这个案例,相信大家可 ...
随机推荐
- 002---rest_framework认证组件
rest_framework认证组件 问题:有些API,需要用户登录才能访问,有些无需登录就能访问. 解决: a. 创建两个模型类:UserInfo---OneToOne---UsetToken b. ...
- 工作和面试中的gdb
gdb是C/C++程序员必备的专业技能,工作中gdb最常用的场景有两个,一个是分析core文件,另一个是调试程序. 分析core文件的方法如下: 1.gdb 程序名 core文件名 2.bt或wher ...
- leetcode记录-组合两个表
表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | Firs ...
- pyasn1 安装异常
初探Scrapy 时,也不知道按照哪里的文档装的,由于安装低版本的pyasn1 后,使用pip uninstall 都 卸不了 步骤如下: 异常: pyasn1-modules has require ...
- 20155234java实验一
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习Linux基础入门(新版))Vim ...
- 第八周课上额外项目:pwd的实现
项目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 并且上交博客链接. 实验步骤 我首先不懂pwd到底是个 ...
- 20155339 2016-2017-2 《Java程序设计》第1周学习总结
20155339 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 第一章 一直以为JAVA应该只是一种语言,研读了书本之后发现原来JAVA也代表了解决问题的平 ...
- CF 96 D. Volleyball
D. Volleyball http://codeforces.com/contest/96/problem/D 题意: n个路口,m条双向路,每条长度为w.每个路口有一个出租车司机,最多可以乘坐这辆 ...
- vue2.0做移动端开发用到的相关插件和经验总结1.0
最近在用vue2.0做微信公众号相关的前端开发,经过这次开发实践,现将项目中用到的相关比较实用的插件及遇到的相关问题进行整理,希望和大家共同交流...... cssrem:一个CSS值转REM的VSC ...
- JavaScript事件冒泡和捕获
事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件. 事件冒泡是自下而上的去触发事件. 绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获.true,事件捕获:fa ...