4 分割结果与分析
4.1边缘检测结果及分析
在MATLAB 图像处理工具箱中提供了专门的边缘检测edge 函数,由edge 函数可以实现各算子对边缘的检测。
利用edge 函数,分别采用Sobel、Prewitt、Log、Canny 这5种不同的边缘检测算子编程实现对原始图像进行边缘提取。 待实现分割的原图:
图4.1 原图
4.1.1 sobel算子分割结果
原图经过灰度处理后:
图4.2灰度图
15
对灰度图4.2进行Sobel算子分割后:
图4.3 Sobel算子效果图
Sobel算子:Sobel 在Prewitt 算子的基础上,对4-邻域采用带权的方法计算差分,该算子不仅能检测边缘点,且能进一步抑制噪声的影响,但检测的边缘较宽。
4.1.2 Prewitt算子分割结果
对灰度图4.2进行Prewitt算子处理后:
图4.5 Prewiit算子效果图
Prewitt算子:Prewitt从加大边缘检测算子的模板大小出发,由2×2 扩大到3×3 来计算差分算子,采用Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响。
16
4.1.3 Canny算子分割结果
对灰度图4.2进行Canny算子分割后:
图4.6 Canny算子效果图
Canny算子:Canny算子较为简单,而且考虑了梯度方向,效果比较好[10]。算子同样采用高斯函数对图像做平滑处理, 因此具有较强的抑制噪声能力。
4.1.4 Log 算子分割结果
对灰度图4.2进行Log算子分割后:
图4.9 Log算子效果图
Log 算子:该算子克服了拉普拉斯算子抗噪声能力比较差的缺点, 但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉, 造成这些尖锐边缘无法被检测到[8]。
17
4.1.5 各边缘检测分割结果比较
通过比较分割结果可以看出,Sobel算子对灰度渐变和噪声较多的图像处理效果比较好,对边缘定位比较准确。Prewitt对灰度渐变和噪声较多的图像处理效果较好。LoG算子经常出现双边缘像素边界,而且该检测方法对噪声比较敏感,所以很少用LoG算子检测边缘,而是用来判断边缘像素是位于图像的明区还是暗区。Canny不容易受噪声的干扰,能够检测到真正的弱边缘。在edge函数中,最有效的边缘检测方法是Canny方法。该方法的优点在于使用两种不同的阈值分别检测强边缘和弱边缘,并且仅当弱边缘与强边缘相连时,才将弱边缘包含在输出图像中。因此,这种方法不容易被噪声“填充”,跟容易检测出真正的弱边缘[4]。
4.2 区域生长结果与分析
对灰度图4.2进行区域生长分割后:
图4.11 区域生长效果图
可以看出:区域生长方式的优点是计算简单。但区域生长的缺点也比较明显:(l)它需要人工交互以获得种子点,这样使用者必须在每个需要抽取出的区域中植入一个种 子点;(2)区域增长方式也对噪声敏感,导致抽取出的区域有空洞或者在局部体效应的情况下将分开的区域连接起来。
18
相关推荐: