本研究探讨了数字图像处理中分水岭算法和Prewitt边缘检测算子在图像分割中的应用效果,分析二者结合使用的优化策略及其实际案例。
本程序的目的是将一幅医学图像CT.bmp进行图像分割,以达到目视观察各个区域更有效的效果。该程序是在Windows XP系统下使用Visual Studio 2008编程工具编写,采用C++语言开发而成。可以直接运行“\源代码\Debug\WaterShed.exe”来启动程序。
本人采用了两种图像分割的方法:一种是彩色分割法,另一种则是分水岭分割法。
方法1. 彩色分割法是一种在数字图像处理中广泛应用的技术,在思想上与灰度图像的分割算法基本一致。不过它更侧重于多维空间中的像素属性考察及特征提取技术。因此可以将彩色分割视为灰度图象分割技术在各种颜色空间的应用扩展。
该方法利用了prewitt算子实现24位真彩色图像边缘检测,通过使用两个卷积核对原始图片的每个像素进行处理得到两张缓存图,并比较这两张缓存图中对应位置上的数值大小,选取较大的值作为新图中的色彩信息。最后将这些颜色值保存回原图像以生成分割后的结果。
方法2. 分水岭算法是通过将一幅灰度图像视作一个地形地貌模型来实现的,在这个模型里,灰度强度被解释为地表的高度。高亮度区域对应山峰,低亮度区域则代表山谷。当“雨水”从高地流下时会逐渐流向更低的地方直至汇入某个盆地;这些汇集水体的最低洼处被称为吸水盆地。
这种方法的主要目的是在图像中识别出不同的吸水盆地和分水岭,在分割过程中不同颜色或材质构成的不同区域会被视为独立的吸水盆地区域,而边界则被定义为分水岭。该算法的具体实现可以在CWaterShedDoc类里的OnWaterShed()函数找到。