NI Vision:二值图像连通域标记算法

NI Vision:二值图像连通域标记算法,第1张

前面说到,要使用Labwindows + NI Vision(IMAQ Vision)这套商用开发框架来做数图课设。很明显,这套虚拟仪器开发平台由NI Instrument(美国国家仪器公司)开发的。大名鼎鼎的Labview软件就是这个公司开发的。相比较而言,Labwindows使用ANSI C开发,但应用场景是差不多的。

在做课程作业的时候,遇到了一个很有趣的应用。输入是米粒,比背景灰度要低,目的是输出米粒的颗数、面积、周长和孔数,这是工业上的一个很常见的应用。具体处理过程是二值化后使用低通滤波,并计算各种性质。

界面设计如下,可以看到米粒的详细情况。

让我感兴趣的,是通过怎样的算法能够得到米粒的数量?之前曾经用过亏隐尺OpenCV中找最大外界矩形这个函数,但没有具体了解算法实现。直觉告诉我原理应该是相似的。

可以看到,每一个米粒之间都是不连通的。这里就就提出了一个概念。 连通区域(Connected Component) 是指图像中相邻并有相同像素值的图像区域 连通区域分析(Connected Component Analysis,Connected Component Labeling) 是指将图像中的各个连通区域找出并标记。

二值图像分析最重要的方法就是连通区域标记,它是所有二值图像分析的基础,它通过对二值图像中白色像素(目标)的标记,让每个单独的连通区域形成一个被携仔标识的块,进一步的我们就可以获取这些块的轮廓、外接矩形、质心、不变矩等几何参数销高。如果要得到米粒的数量,那么通过连通区域分析(这里是二值图像的连通区域分析),就可以得到标记的数量,从而得到米粒的数量。

下面这幅图中,如果考虑4邻接,则有3个连通区域,8邻接则是2个。

从连通区域的定义可以知道,一个连通区域是由具有相同像素值的相邻像素组成像素集合,因此,我们就可以通过这两个条件在图像中寻找连通区域,对于找到的每个连通区域,我们赋予其一个唯一的 标识(Label) ,以区别其他连通区域。

连通区域分析的基本算法有两种:1)Two-Pass两便扫描法 2)Seed-Filling种子填充法 。

两遍扫描法(Two-Pass),正如其名,指的就是通过扫描两遍图像,就可以将图像中存在的所有连通区域找出并标记。

说了一堆数学语言,其实用图很好理解

种子填充方法来源于计算机图形学,常用于对某个图形进行填充。它基于区域生长算法。至于区域生长算法是什么,可以参照我的这篇 文章 。

同样的,上动图

NI Vision 中的算子定义如下

OpenCV中也有相应的算子

这里参照其他博客实现一下Two-Pass算法,Seed-Filling算法就偷懒不搞了。

Reference:

OpenCV实现图像连通组件标记与分析

OpenCV-二值图像连通域分析

数字图像处理技术 ——邓继忠(我的任课老师)

可用sobel算腔腔子提取图像的边界。

具体拍圆宏的Matlab程序可为:

I=imread('bonemarr.tif')

[BW1,th1]=edge(I,'sobel',0.07)

th1str=num2str(th1)

imshow(I)

title('图1:bonemarr.tif原图','fontsize',14,'position',[128,260,0])

figureimshow(BW1)

ti='图8: sobel算子提取的边界,阈值为'

ti=strcat(ti,th1str)

title(ti,'fontsize',12,'position'袭册,[128,260,0])

图像虽好,盘子太大啊。以前一直对用的算法不太满意,前天晚上居然发现以前算法里面的一个错误。可惜这是我最得意自认为最完美的算法,结果盯着看了十来个胡裂小时也没有发现算法的漏 洞,但结果就是不对。最终还是没有找出自己算法的bug,无奈之下换了一个很简单的算法,虽然速度慢不那么精确但基本够用-_-show一下我的处理结果,嘿嘿。基本樱清驱除所有的其他区域,真是干净啊。识别率也有快100%了。并且不需要用户调整任何参数。我就非常暴力地隐藏了所有参数,鲁棒性似乎还很高。不管了,用户说要傻瓜化的,这下够傻瓜了。目的就是识别我贴在电梯限速器试验台上的四个标志,求四个标志之间连线的锐角(夹角随着速度而变化),目的就是求出张角随速度的变化规律。限速器在以一定的加脊做前速度旋转,图像是通过旋转编码器的脉冲控制外触发来进行图像采集的。最快大约200fps。限速器节圆速度大约最快2m/s


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12382940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存