Halcon找圆系列(2)获取PCB焊接点

简介: Halcon找圆系列(2)获取PCB焊接点

ball.hdev: Inspection of Ball Bonding


这个来自官方的例程是要检查图中焊接点,并获取焊接点的直径。



处理过程:


首先,分离比较明亮的区域,然后将找出来的结果,转换成最小的平行矩形,即获得了图像处理的ROI。


    这里采用了阈值分割:将图像中的灰度值处于某一指定灰度值范围内全部点选到输出区域中。threshold (Bond, Bright, 100, 255)


然后,在ROI区域内选择比较暗的区域,移除不适合的区域(利用形状,面积等参数),把物体抽出变成一个独立的物,找出圆形物体,并且排列物体即可。

image.png


image.png



dev_close_window ()
dev_open_window(0, 0, -1, -1, 'black', WindowID)
read_image(Die, 'E:/halcon图像/die_03.png') 
dev_display(Die)
threshold(Die, Brightregion,100,255) 
shape_trans(Brightregion, ROI, 'rectangle2')
reduce_domain(Die, ROI, DieROI)
threshold(DieROI, RawSegmentation,0,50) 
fill_up_shape(RawSegmentation, Wires, 'area', 1, 100)
opening_circle(Wires, BallRegion, 15.5) 
connection(BallRegion, Balls)
select_shape(Balls, FinalBalls, 'circularity', 'and', 0.85, 1.0)
count_obj(FinalBalls,NumBalls)
smallest_circle(FinalBalls, Row, Column, Radius)
meanRadius := sum(Radius)/|Radius|
area_center(FinalBalls, Area, RowCenter, Colcenter)
minArea := min(Area)
disp_circle(WindowID, Row, Column, Radius)


所用到的算子如下:


threshold(Image : Region : MinGray, MaxGray : )


阈值处理算子,MinGray <= g <= MaxGray,halcon软件将g所在的范围变成红色。


shape_trans(Region : RegionTrans : Type : )


由 threshold 的参数 100 及 255,即可产生一个合理的 raw segmentation,然后把这个区域转成一个 ROI,做为 bonding balls 侦测之用。选用 shapr_trans,以"Brightregion"为输入区域,参数用"rectangle2",来找 出一个包含"Brightregion"最小的平行四边型。输出的 region 取名为"ROI",差不多就是电路 板的大小了。再来用reduce_domain,把原始影像约化成包含 ROI 的范围。


reduce_domain(Image, Region : ImageReduced : : )


裁剪区域算子


fill_up_shape(Region : RegionFillUp : Feature, Min, Max : )


填充满足给定的图形特征的区域。


opening_circle(Region : RegionOpening : Radius : )


开运算,使用具有圆形结构的区域


connection(Region : ConnectedRegions : : )


区域连通


select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )


选择满足要求的区域


count_obj(Objects : : : Number)


计数


smallest_circle(Regions : : : Row, Column, Radius)


包含一 region 的最小圆,圆心位置以及半径


*注意,'||'中求的不是绝对值,而是 tuple 数据的数目,这个例子中就是7。


area_center(Regions : : : Area, Row, Column)


计算圆心


disp_circle( : : WindowHandle, Row, Column, Radius : )


将几个圆显示在原始图像中



相关文章
|
传感器
Arduino火焰传感器(含代码)
Arduino火焰传感器(含代码)
373 0
Arduino火焰传感器(含代码)
|
25天前
基于51单片机的简单交通灯程序
基于51单片机的简单交通灯程序
9 2
|
7月前
|
C语言
圆曾经的小车梦,造一台智能小车(四)之QT上位机控制小车
圆曾经的小车梦,造一台智能小车(四)之QT上位机控制小车
143 0
|
8月前
PCB相关知识-元器件+原理图
这里说的元器件指的是在原理图中使用的元器件符号。一个电阻,电容,电感,连接器,IC等都是一个元器件。元器件在原理图中只是一个电气符号,形状不定,比如可以用任意的形状(矩形,三角形,圆形)表示元器件,但是引脚必须一致。因为形状只是方便看图的人容易分辨,知道这是什么元件就行。当然一般我们会按照某一个标准,也不会随便画。但是引脚是和实际的元器件是一一对应的,实际的元器件是多少,那么我们在设计原理图元器件的时候就是多少。
71 0
|
10月前
|
传感器 数据采集 机器人
LabVIEW控制Arduino实现红外测距(进阶篇—6)
红外测距是一种非直接接触的测量方式,由于其结构简单、抗干扰性强、成本低等优点,在测量测绘上得到广泛的运用。
|
10月前
|
开发工具 计算机视觉 git
OpenMV图像处理之后给单片机通讯
OpenMV图像处理之后给单片机通讯
207 1
|
算法
基于labview上位机控制的6自由度机械臂
基于labview上位机控制的6自由度机械臂
171 0
|
传感器 编解码 监控
单片机温湿度测量程序编程
单片机温湿度测量程序编程
60 0
红外温度计(测温仪)的原理是什么?
测温枪学名是“红外温度计”或“红外辐射温度计”。测温枪原理是被动吸收物体的红外辐射能量,获得物体的温度数值
红外温度计(测温仪)的原理是什么?
|
传感器 存储 数据采集
基于单片机的温度计设计
基于单片机的温度计设计
141 0
基于单片机的温度计设计