You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

7.1 什么是图像分割

图像是由像素组成的

这是从新浪2009年的验证码中截出来的一张图。相信大家已经看出来了是字母y。这张看似非常简单的图在计算机中却是由一个个像素所排列组成的。像素(pixel)是图像的组成单位,像素的值域是[0, 255]。像素值越低的话我们看起来就越黑,越高的话看起来就越白。如图所示:

正因为像素有代表明暗的属性,所以我们看到的这张图在计算机中的存储是这样的。

相信你可以站远点看能够看得出来也是一个y

图像分割的意义

现在已经知道数字图像是由很多个像素组成的,如果图像的高和宽很大的时候,我们想识别出图像中的某个对象的时候就面临了一个问题,就是搜索范围太大了。比如下面这张图,如果我想识别出图中的建筑,那我的算法可能需要查看所有像素,很显然,这是一种非常低效的方式。

倘若现在我换个思路,我在识别建筑之前我先把图像中对象用不同的编号或者颜色来划分成不同的区域(图像处理中将其称为感兴趣区域也叫ROI),然后再根据我想要识别的对象来查看对象对应的ROI即可。这样做能很好的提高图像识别的效率,并且能够在一定程度上过滤掉一些无用的信息。比如我要识别出上图中的建筑,我可能会对整张图做图像分割,然后我只要对整张图的上半部分做图像识别就可以了。

图像分割与聚类

此时出现了一个新名词叫做聚类。其实聚类分类是比较相近的。他们的共同点是将数据划分成好几个类别,而不同的是,分类的历史数据中是带有标准答案的;而聚类时,历史数据中是不带标准答案的。如下图所示:

也就是说,聚类算法会将觉得长得差不多的数据划分为同一种类别。这种思想与图像分割的功能是一致的,因为图像分割其实就是将觉得长得差不多的像素划分为同一种类别。所以聚类算法可是实现图像分割的功能。接下来要介绍的 k 均值算法,就是一种典型的聚类算法。