Blob分析

Blob分析

1 简介

Blob分析:Blob分析目的在于对图像中的2-D形状进行检测和分析,得到诸如目标位置、形状、方向和目标间的拓扑关系(即包含关系)等信息。根据这些信息可对目标进行识别。在某些应用中我们不仅需要利用2D的形状特征,还要利用Blob分析之间的特征关系。

Blob分析的主要内容包括:(1)图像分割:将图像中的目标和背景分离。(2)去噪:消除或减弱噪声对目标的干扰:(3)场景描述:对目标之间的拓扑关系进行描述。(4)特征量计算:计算目标的2-D形状特征。

2 Blob分析技术

  • 图像分割:Blob分析实际上是对闭合形状进行特征分析。在Blob分析之前,必须将图像分割为目标和背景。图像分割是图像处理的一大类技术,在Blob分析中拟提供分割技术包括:直接输入、固定硬阈值、相对硬阈值、动态硬阈值、固定软阈值、相对软阈值、像素映射、阈值图像。其中固定软阈值和相对软阈值方法可在一定程度上消除空间量化误差,从而提高目标特征量的计算精度。
  • 形态学操作:形态学操作的目的是去除噪声点的影响。
  • 连通性分析:将目标从像素级转换到连通分量级。
  • 特征值计算:对每个目标进行特征量计算,包括面积、周长、质心坐标等特征。
  • 场景描述:对场景中目标之间的拓扑关系进行描述。

适用场景:

Blob分析主要适用以下机器视觉应用:二维目标图像、高对比度图像、存在/缺席检测、数值范围和旋转不变性需求。

Blob分析不适用以下机器视觉应用:低对比度图像、不能够用两个灰度表示的特征、图形检测需求。

3 代码实现

* Blob分析
* 常用方法是对图像进行二值化+形态学+特征选择。并不是所有的都用到这三个,也可以只有其中两个
* 他的用法是非常灵活的
* 描述:通过Blob分析获取瓶盖
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] USB2.0 PC CAMERA', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
* 设置每次绘制只绘制出区域的边缘
* dev_set_draw ('margin')
dev_close_window ()
* 后面参数表示图像的背景和图像的句柄
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
while (true)
    grab_image_async (Image, AcqHandle, -1)
    * 显示图片
 
    * 转换成灰度图像
    rgb1_to_gray (Image, GrayImage)
    
    * 进行二值化,可以用直方图工具进行选择阈值
    * 注意:这时候并不能完全区分出图像图像所选的区域,还是有很多干扰的。不能完全找到,先进行一个大概的定位
    threshold (GrayImage, Regions, 150, 255)
    * 二值化之后的到的是一个区域。区域只是代表某个区域的像素集合,没有对应的灰度值,而图像是带有灰度值的
    
    * 以上得出来的是一个区域,当想进行形状选择或者要选出某个区域的时候,需要切分成不同的区域
    * 调用connection切分成不同的区域
    connection (Regions, ConnectedRegions)
    * 切分之后对于某些区域可能会有一些孔洞,所以我们进行填充
    fill_up (ConnectedRegions, RegionFillUp)
    
    * 通过多个特征来选取我们想要的区域,因为如果只用面积特征的话不能很好的选出ROI区域
    * 通过特征直方图来选取,这里使用面积和圆度来获取瓶盖的ROI区域
    select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [10769.9,0.4092], [50000,1])
    
    * 区域得到之后求面积,求出的面积是像素单位
    area_center (SelectedRegions, Area, Row, Column)
    * 显示面积和坐标
    disp_message (WindowHandle, '面积:' + Area + '坐标:(' + Row + ',' + Column + ')', 'window', 0, 0, 'white', 'true')
    dev_display(Image)
    dev_display (SelectedRegions)
endwhile
close_framegrabber (AcqHandle)

4 结果

视频连接。能够很好的识别出瓶盖。

参考文献

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值