分水岭变换:图像分割策略
Steve Eddins, MathWorks
分水岭一词指的是将不同河流系统排水的区域分隔开来的山脊。汇水盆地是指流入河流或水库的地理区域。
那么,流域和流域与分析生物组织、研究星系或研究新的半导体技术有什么关系呢?和什么有联系图像处理?
这种联系是通过计算机对数字图像中的物体进行分析。物体可以是任何东西:血细胞、星星、打印页面上的墨粉点、DNA微阵列元素,甚至是量子半导体点,如图所示。
计算机对图像对象的分析从找到它们开始——决定哪些像素属于每个对象。这就是所谓的图像分割,即将物体从背景中分离出来,也将物体彼此分离出来的过程。R. Gonzalez和R. Woods在他们广泛使用的教科书(数字图像处理),“非平凡图像的分割是图像处理中最困难的任务之一。分割精度决定了计算机化分析程序的成败。
图像处理工具箱的最新版本(版本3)包括用于计算和应用分水岭变换的新功能,这是解决图像分割问题的强大工具。
理解分水岭变换需要将图像看作一个曲面。例如,考虑下图:
多维图像处理 |
例1:分割二值图像
考虑在这张二值图像中分离两个接触对象的任务。我们如何修改这幅图像,使它的流域变成两个圆形物体?
要做到这一点,我们将使用图像处理工具箱中的另一个新工具:bwdist
,计算距离变换.二值图像的距离变换是每个像素到最近的非零值像素的距离,如下例所示。
二值图像的距离变换,用bwdist (BW)
,与图A(左)相似。
这张图片不是很有用,因为整个图片中只有一个集水区。相反,试着计算图像补域的距离变换:
D = bwdist(~BW);%图片B(上图)
这张图比较近,但是我们需要对距离变换进行否定,把两个明亮的区域变成流域。
D = -bwdist(~BW);%图片C(上图)
现在每个对象都有一个流域,所以我们称之为流域函数。l
=
分水岭(D);
l
叫做标签矩阵,其中包含正整数,对应每个集水区的位置。我们可以使用的零值元素l
,它们位于分水岭线上,以分离原始图像中的物体。
Bw (l == 0) = 0;imshow(BW) %分割图像D(上图)
例2:分割量子点
量子点图像需要做更多的工作,使其适合分水岭分割。首先,我们将图像转换为灰度,并使用带有圆盘形结构元素的形态顶帽算子(许多新的灰度形态工具之一)来平滑不均匀的照明。
I = rgb2gray(RGB);I2 = imtophat(I, strel('disk', 10));
其次,我们使用一个名为graythresh
确定一个好的阈值,将图像转换为二进制。
level = graythresh(I2);BW = im2bw(I2,level);
最后,对补全后的二值图像进行距离变换,对其进行修改,使背景成为其自身的流域,并进行流域变换。新函数label2rgb
用于显示使用不同颜色的分段对象。
D = -bwdist(~BW);D(~BW) = -Inf;L =分水岭(D);imshow (label2rgb (L,“喷气机”,“w”))
例3:分割钢粒
我们的最后一个例子,一个显微镜下的钢颗粒图像,看起来很适合分水岭分割,因为浅色区域已经被深色线条很好地分开了。
我们可以简单地计算补后图像的分水岭。
L =分水岭(缺陷(I));
不幸的是,这并不奏效,如下图所示:
结果,oversegmentation,是分水岭分割中的一个众所周知的现象。过度分割的发生是因为每个区域的最小值,即使微小和不重要,也会形成自己的汇水盆地。一种解决方案是修改图像以去除太浅的最小值。这正是h-minima变换(imhmin
)。
I2 = imcomplement(I);I3 = imhmin(I2,20);%20为抑制浅层最小值L =分水岭(I3)的高度阈值;
这是改进后的结果。
您已经了解了使用分水岭变换分割图像的几种方法。另一种技术,称为标记控制分水岭分割,描述在图像处理工具箱页面.要了解更多关于如何在自己的工作中使用分水岭变换的信息,请查看进一步阅读。
什么是新的图像处理工具箱3
63个新的工具箱功能极大地扩展了它在以下主要领域的能力:
- 灰度形态学
- 空间的转换
- 图像配准
- 图像去模糊
- 日本进口
- 多维图像处理
- 整数图像算法与滤波
- 在易于使用的图形环境中方便仪器控制的工具
- 用于确定计算机可用硬件的函数
- 在一个MATLAB会话中与多个仪器通信
有关新版本的更多信息,请参见图像处理工具箱页面.
2002年出版的
参考文献
-
数字图像处理,Rafael C. Gonzalez和Richard E. Woods, Prentice-Hall, 2002
-
《图像处理手册》,约翰·拉斯著,CRC出版社,1998年
-
形态图像分析:原理和应用,Pierre Soille著,斯普林格出版社柏林海德堡出版社,1999年