连通区域算法
A. 将一张图二值化后,有很多连通区域,我想分别求出每一块连通区域的面积,不知道有什么好一点的算法
图像处理里有一种叫做Labeling处理的算法。
可以把二值图划分区域,标出不同的区域编号。
只要计算每种编号的个数,就是对应区域的面积了。
如果没看懂,不是算法难,是我表达的不好。哈。
B. dbscan算法是什么
DBSCAN基于高密度连通区域的、基于密度的聚类算法,能够将具有足够高密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇。我们总结一下DBSCAN聚类算法原理的基本要点:
DBSCAN算法需要选择一种距离度量,对于待聚类的数据集中,任意两个点之间的距离,反映了点之间的密度,说明了点与点是否能够聚到同一类中。由于DBSCAN算法对高维数据定义密度很困难,所以对于二维空间中的点,可以使用欧几里德距离来进行度量。
(2)连通区域算法扩展阅读:
dbscan个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
(1)适当选择c个类的初始中心;
(2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类;
(3)利用均值等方法更新该类的中心值;
(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。
C. 连通区域
连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域,连通区域分析是指将图像中的各个连通区域找出并标记。
连通区域分析是一种在CV和图像分析处理的众多应用领域中较为常用和基本的方法。
例如:OCR识别中字符分割提取(车牌识别、文本识别、字幕识别等)、视觉跟踪中的运动前景目标分割与提取(行人入侵检测、遗留物体检测、基于视觉的车辆检测与跟踪等)、医学图像处理(感兴趣目标区域提取)等。
在需要将前景目标提取出来以便后续进行处理的应用场景中都能够用到连通区域分析方法,通常连通区域分析处理的对象是一张二值化后的图像。
在图像中,最小的单位是像素,每个像素周围有邻接像素,常见的邻接关系有2种:4邻接与8邻接。
如果A与B连通,B与C连通,则A与C连通,在视觉上看来,彼此连通的点形成了一个区域,而不连通的点形成了不同的区域。这样的一个所有的点彼此连通点构成的集合,我们称为一个连通区域。
两遍扫描法( Two-Pass ),正如其名,指的就是通过扫描两遍图像,将图像中存在的所有连通域找出并标记。
第一次扫描:
•从左上角开始遍历像素点,找到第一个像素为255的点,label=1;
•当该像素的左邻像素和上邻像素为无效值时,给该像素置一个新的label值,label ++,记录集合;
•当该像素的左邻像素或者上邻像素有一个为有效值时,将有效值像素的label赋给该像素的label值;
•当该像素的左邻像素和上邻像素都为有效值时,选取其中较小的label值赋给该像素的label值
第二次扫描:
•对每个点的label进行更新,更新为其对于其集合中最小的label
步骤
1、加载原始图像
2、阈值分割,将图像分割为黑白两个部分
3、对图像进行开运算,即先腐蚀在膨胀
4、对开运算的结果再进行 膨胀,得到大部分是背景的区域
5、通过距离变换 Distance Transform 获取前景区域
6、背景区域sure_bg 和前景区域sure_fg相减,得到即有前景又有背景的重合区域
7、连通区域处理
8、最后使用分水岭算法
D. 谁能给个好用的连通域处理的算法,要8邻域的
楼主要处理的图像是什么样的?黑白图像还是彩色的?我这里有个以前用过的只针对黑白图像的连通域处理,目标是白色,背景是黑色的,不过,如果你的图像不是这样的,那先二值化,然后变换为黑色背景白色目标的图片 CodeGo.net,再调用我这个函数,先看懂我这个函数,然后修改为可以处理白色背景黑色目标 具体函数
其中THRESHOLD_JOINNUM 是个宏定义……
你要先把图像的边缘像素处理下,把边缘1到2个像素宽度的位置,都置为背景色,否则,可能得不到正确的结果,也可能造成访问越界。也就是把四周的边缘像素都置为背景色 然后,如果你仔细看这个函数的实现的话,其实是使用两次连通域处理,一次是用来把黑色的小区域变为白色,也就是填补目标区域中可能出现的小黑洞。然后第二次处理才是用来删除那些小于阈值的白色目标小连通域 这个函数你要看明白才能正确使用。看吧。
2. 楼主要处理的图像是什么样的?黑白图像还是彩色的?我这里有个以前用过的只针对黑白图像的连通域处理,目标是白色,背景是黑色的,不过,如果你的图像不是这样的,那先二值化,然后变换为黑色背景白色目标的图片,再调用我这个函数,先看懂我这个函数,然后修改为可以处理白色背景黑色目标 具体函数
E. 简述边界表示的四连通区域的种子填充算法的基本思想和执行步骤
一、种子填充算法思想:
首先填充种子所在的尚未填充的一区段,然后确定与这一区段相邻的上下两条扫描线上位于该区段内是否存在需要填充的新区段,如果存在,则依次把每个新区段最右端的象素作为种子放入堆栈。反复这个过程,直到堆栈为空。
二、种子填充算法步骤:
1、初始化堆栈。
2、种子压入堆栈。
3、While(堆栈非空)从堆栈弹出种子象素。
F. 复连通区域怎么用格林公式
在平面闭区域D上的二重积分,可通过沿闭区域D的边界曲线L上的曲线积分来表达;或者说,封闭路径的曲线积分可以用二重积分来计算。
如区域D不满足以上条件,即穿过区域内部且平行于坐标轴的直线与边界曲线的交点超过两点时,可在区域内引进一条或几条辅助曲线把它分划成几个部分区域,使得每个部分区域适合上述条件,仍可证明格林公式成立。
注意:对于复连通区域D,格林公式的右端应包括沿区域D的全部边界的曲线积分,且边界方向对区域D来说都是正向。
格林公式沟通了二重积分与对坐标的曲线积分之间的联系,因此其应用十分地广泛。
格林公式如下:
复平面上的一个区域G,如果在其中任做一条简单闭曲线,而闭曲线的内部总属于G,就称G为单连通区域(如图二左所示)。一个区域如果不是单连通区域,就称为多连通区域(如图二右所示)。
参考资料来源:网络-连通区域
参考资料来源:网络-格林公式
G. 帮忙下载pudn文件,万分感谢。http://www.pudn.com/downloads201/doc/detail944859.html
请下载附件吧,文件已给你上传,希望对你的研究有所帮助,还望采纳
连通区域标记算法,包括区域增长法、线标记和像素标记以及各种综合的算法
连通域标记Fast connected-component labeling based on
sequent.pdf
..........线标记结合区域增长一种二值图像连通区域标记的新算法.pdf
..........区域增长法一种二值图像连通区域标记的新方法.pdf
....................基于Max-tree的连通区域标记新算法.pdf
..........线标记基于跑长码的连通区域标记算法.pdf
................快速连通域分析算法及其实现.pdf
................线求解二值图像连通域的改进算法.pdf
..................一种新的二值图像标记的快速算法.pdf
..................一种基于线的标号传播二值图象连通体快速检测方法.pdf
................游程二值图象的快速标记方法及其应用.pdf
....................二值图像中的游程编码区域标记.pdf
....................一个二值图像连通成份标记的快速算法.pdf
...........袼乇昙荺基于递归的二值图像连通域像素标记算法.pdf
..................带标记矫正的二值图象连通域像素标记算法.pdf
H. java代码怎么实现计算图像二值连通区域的质心
一:几何距(Geometric Moments)知识与质心寻找原理
1. Image Moments是图像处理中非常有用的算法,可以用来计算区域图像的质心,方向等几何特性,同时Mpq的高阶具有旋转不变性,可以用来实现图像比较分类,正是因为Moments有这些特性,很多手绘油画效果也会基于该算法来模拟实现。它的数学表达为:
它的低阶M00,M01, M10可以用来计算质心,中心化以后M11,M02,M20可以用来计算区域的方向/角度
2. 什么是质心
就是通过该点,区域达到一种质量上的平衡状态,可能物理学上讲的比较多,简单点的说就是规则几何物体的中心,不规则的可以通过挂绳子的方法来寻找。
二:算法流程
1. 输入图像转换为二值图像
2. 通过连通组件标记算法找到所有的连通区域,并分别标记
3. 对每个连通区域运用计算几何距算法得到质心
4. 用不同颜色绘制连通区域与质心,输出处理后图像
三:算法效果
左边为原图, 右边蓝色为连通组件标记算法处理以后结果,白色点为质心
四:关键代码解析
1. 计算几何距算法代码
doublem00 = moments(pixels, width, height, 0, 0);
doublexCr = moments(pixels, width, height, 1, 0) / m00;// row
doubleyCr = moments(pixels, width, height, 0, 1) / m00;// column
return new double[]{xCr, yCr};
I. NI Vision:二值图像连通域标记算法
前面说到,要使用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-二值图像连通域分析
数字图像处理技术 ——邓继忠(我的任课老师)
J. 请问在公务员考试中,什么是连通区域和非连通区域怎么数连通区域数和数非连通区域数
考试中出现的连通区域和非连通区域的题目主要出现在图形推理,
举个列子:“理”这个字,它就是由“王”和“里”2个连通区域组成,因为“王”和“里”的所有比划有连着,不分开!
没有连着的区域有几个就是几个连通区域!
希望能帮到你!