Halcon Solution Guide I basics(4.1): Blob Analysis 自主练习

文章专栏

我的Halcon开发 CSDN 专栏

Halcon学习 练习项目gitee仓库

CSDN Major 博主Halcon文章推荐

随笔分类 - Halcon入门学习教程

前言

为了更加熟练的掌握Halcon的练习,我之后每个章节都会给我自己出1道小题目,来熟悉halcon代码

自主练习

我们按照halcon教程的三大步开始写

* ----读取图片

* ----图像处理

* ----打印参数

在这里插入图片描述

题目

输出电路板焊点个数

在这里插入图片描述

解决方案:正确率:90

难点:明亮对比太差

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

* ----读取图片
read_image (Image, '../images/circuit_board_5')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
* 因为是彩色图像,三通道处理
decompose3 (Image, Image_r, Image_g, Image_b)
* 根据结果,R通道的对比最强烈
Image_res := Image_r
* ----图像处理
* 找到亮面
threshold (Image_res, Region, 70, 255)
* [圆形腐蚀],去掉噪点
opening_circle (Region, RegionOpening,5.5)
* [漏点补充]
fill_up_shape (RegionOpening, RegionFillUp, 'area', 1, 100)
* [连通性离散]
connection (RegionFillUp, ConnectedRegions)
* 面积筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 250, 1000)
* 获取中心的坐标
area_center (SelectedRegions, Area, Row, Column)

* ----打印参数
dev_display (Image)
dev_display (SelectedRegions)


for i := 0 to |Area| -1 by 1
    disp_message (WindowHandle, i, 'window', Row[i], Column[i], 'black', 'true')
*     disp_cross (WindowHandle, Row, Column, 6, 0)
endfor
msg := 'points count' + |Area|
disp_message (WindowHandle, msg, 'window', 12, 12, 'black', 'true')


猜你喜欢

转载自blog.csdn.net/qq_44695769/article/details/134624354