Blob分析案例(硬币检测)

Blob分析案例(硬币检测)

本案例是对硬币进行识别,使用halcon。实现的效果和代码如下。

1 效果

经过灰度化后的图像,如图所示:
在这里插入图片描述
经过Blob分析,最终得到的结果如下图所示,能够很好的找到硬币所在的区域,并获取面积和坐标,这个是针对像素点的面积。
在这里插入图片描述

2 代码实现

* 案例:硬币识别
* 连接相机
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'gray', -1, 'false', 'default', '[0] USB2.0 PC CAMERA', 0, -1, AcqHandle)
* 开启相机
grab_image_start (AcqHandle, -1)

* 关闭窗口
dev_close_window ()
* 打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
while (true)
    * 抓取图像
    grab_image_async (Image, AcqHandle, -1)
    * 预处理,中值滤波
    median_image (Image, ImageMedian, 'circle', 1, 'mirrored')
    * 二值化
    threshold (Image, Regions, 144, 254)
    * 二值化以后,得出来的结果会噪点,使用形态学把噪点去掉
    * 因为硬币是圆形的,所以使用圆形结构元素进行处理,所以结构元素的半径越大,
    * 开运算去掉的强度越强,也可以使用腐蚀,但是腐蚀去掉像素点的强度比开运算强
    opening_circle (Regions, RegionOpening, 6)
    * 经过处理后用孔洞,需要进行填充
    fill_up (RegionOpening, RegionFillUp)
    * 切分成不同的连通区域
    connection (RegionFillUp, ConnectedRegions)
    * 打开特征直方图工具进行特征选取,对于硬币的选取,只需要使用圆度和面积就可以把硬币选出
    select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [6977.74,0.40497], [50000,1])
    * 面积和坐标
    area_center (SelectedRegions, Area, Row, Column)
    * 显示
    disp_message (WindowHandle, '面积: ' + Area + '坐标:(' + Row + ',' + Column + ')', 'window', Row-150, Column-150, 'black', 'true')
endwhile
* 关相机
close_framegrabber (AcqHandle)
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值