什么是图像分割?
图像分割是将数字图像划分互不相交的区域的过程,它可以降低图像的复杂性,从而使分析图像变得更简单
分割在实际应用中的使用
在癌细胞检测系统中可以看到独特而著名的应用之一,其中图像分割被证明在从图像中更快地检测疾病组织和细胞方面发挥了关键作用,从而使医生能够提供及时的治疗。
制造制业现在高度依赖于图像识别技术来检测人眼所忽略掉的异常,因此增加了产品的效率。
图像分割技术
我们有以下图像分割技术:
不同技术之间的比较
在这里,我们选择了基于聚类的分割。
基于聚类的分割方法
与分类算法不同,聚类算法是无监督算法。在分类算法中,用户没有预定义的一组特征、类或组。聚类算法有助于从数据中获取潜在的、隐藏的信息,例如从启发式的角度来看通常是未知的结构、聚类和分组。
基于聚类的技术将图像分割成具有相似特征的集群或不相交的像素组。凭借基本的数据聚类特性,数据元素被分割成集群,使得同一集群中的元素与其他集群相比更加相似。一些更有效的聚类算法,如 k 均值、改进的 k 均值、模糊 c 均值 (FCM) 和改进的模糊 c 均值算法 (IFCM) 被广泛用于所提出的基于聚类的方法中。
K 均值聚类算法是一种精选的、流行的方法,因为它的简单性和计算效率。改进的 K 均值算法可以最小化 k 均值算法中通常涉及的迭代次数。
由于某些相似性,集群指的是聚合在一起的数据点集合。对于图像分割,这里的集群是不同的图像颜色。
代码实现
K均值是最简单的无监督学习算法之一,通常可以解决聚类问题。该过程遵循一种简单易行的方法,通过一定数量的先验固定的集群对给定图像进行分类。
该算法实际上从图像空间被划分为 k 个像素的开始,表示 k 个组质心。然后根据每个对象与集群的距离将其分配给该组,当所有像素都分配给所有集群时,质心现在移动并重新分配。重复这些步骤,直到质心不再移动。
在该算法收敛时,我们将图像中的区域分割为“K”组,其中组成像素显示出一定程度的相似性。
了解OpenCV中 K 均值聚类的参数
a.终止标准的类型,它有 3 个标志,如下所示:
b.max_iter — 指定最大迭代次数的整数。
c.epsilon - 所需的准确性。
输出参数
在这里,当我们看到图像时,有三种主要颜色(绿色代表树木,蓝色代表海洋/湖泊,白色到橙色代表天空),所以我们考虑集群的数量为 3。
因此,我们将为这张图片使用三个集群
输出:
集群 1 表示绿色,因为禁用集群 1 或将其设为黑色在图像中很明显
输出:
与每个集群关联的计数
禁用集群 4,为代表段 4 的像素分配黑色
输出:
基于聚类的 ML 算法的巨大价值在于我们可以通过使用多个统计参数来衡量生成的片段的质量,例如:轮廓系数、兰德指数 (RI) 等。
结论:
图像分割是一组很有前景的技能,因为它在医学成像中发挥着重要作用,并且各种组织正在努力建立一个有效的医学图像主动诊断系统。
图像处理一般以各种编程语言实现——Java、matplotlib、C++ 等。Python 库像scikit-image、OpenCV、Mahotas、Pillow、matplotlib、SimplelTK 等,被广泛用于实现图像处理,尤其是图像分割。
使用 Python 实现图像分割是广受欢迎的技能,并且有很多相关的培训可供使用。使用 python 库是一种更简单的实现方式,它在使用之前不需要任何复杂的要求——当然除了 Python 编程和 Pandas 的基本知识。