HALCON学习之blob分析

这篇博客介绍了如何使用HALCON的blob分析方法处理图像,目标是识别并分离硬币。通过二值化、形态学操作、特征选择等步骤,尝试从图片中提取硬币的区域,但遇到阴影部分未被有效筛选的问题。文章讨论了基本操作流程,包括读图、灰度转换、二值化以及形态学预处理。
摘要由CSDN通过智能技术生成

实现目标

  • 给出一枚硬币图片,灵活运用blob分析手段,分理处硬币,并得到面积坐标
  • 如图:
  • 在这里插入图片描述
  • 最终实现效果不太好,硬币的阴影部分没有筛选掉。新手,不知道怎么搞
  • 在这里插入图片描述
blob方法
  • 二值化
  • 形态学
  • 特征选择
  • 计算

基本步骤

  1. 读取图片
dev_close_window ()
* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 
Halcon中的blob分析是一种图像分析方法,用于检测和分析图像中的连通区域。以下是Halconblob分析的基本流程: 1.采集图像并进行预处理,包括ROI(感兴趣区域)的定义、去噪、几何变换和拉开对比度等操作。 2.进行二值化处理,将像素根据灰度值范围分为两部分,这个灰度范围值叫做阈值。 3.进行形态学操作,包括膨胀、腐蚀、开运算和闭运算等,以去除噪声和填充空洞。 4.进行连通区域分析,检测和分析图像中的连通区域,包括计算区域的面积、周长、中心位置、最小外接矩形和最小外接等。 5.根据需要,可以进行形状分析、灰度分析和纹理分析等。 以下是一个Halconblob分析的例子: ```python import halcon as ha # 读取图像 image = ha.read_image('test.png') # 定义ROI roi = ha.gen_rectangle1(100, 100, 200, 200) # 对ROI内的图像进行二值化处理 threshold = 128 binary = ha.threshold(image, threshold, 255) # 对二值化图像进行形态学操作 selem = ha.gen_circle(5) binary = ha.dilation_circle(binary, selem) # 进行连通区域分析 regions = ha.connection(binary) # 计算区域的面积、周长、中心位置、最小外接矩形和最小外接等 area = ha.area_center(regions) perimeter = ha.perimeter(regions) row, col = ha.centroid(regions) rect = ha.smallest_rectangle2(regions) circle = ha.smallest_circle(regions) # 显示结果 ha.disp_obj(image, 'Original Image') ha.disp_obj(regions, 'Connected Regions') ha.disp_obj(rect, 'Smallest Rectangle') ha.disp_obj(circle, 'Smallest Circle') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值