王慧琴
(银川能源学院,宁夏 银川 750100)
图像分割是完成所有图像分析的基础,也是数字图像处理的核心技术。分割是把图像细分成组成图像的区域或者物体,分割出来的每个区域的某些特征有一定的相似性。分割的最终结果就是将具有相似特征的区域提取出来,得到想要研究的部分。经过多年的发展,现有的分割方法主要分4种:基于阈值的分割方法、基于区域的分割方法、基于特定理论的分割方法和基于边缘的分割方法,它们属于最基本同样也是最重要的方法,所有的研究(包括衍生的新技术)都需要使用上述方法[1]。图像处理对构成图像的元素进行分解,从分解的元素中提取研究所需要的信息。图像的边缘所携带的信息能够在图像处理过程中发挥识别的作用,这也正是它作为图像基本特征的重要原因。因为能够从不同区域的边缘得到各种各样的信息,所以这也是边缘检测得以实现的原因。在边缘上得到的最有用的信息就是不连续的像素灰度的变化,这些灰度的变化就是实现分割的依据,然后利用一阶和二阶导数进行边缘检测。边缘检测总是随着图像处理的发展而进步的,发展至今,已经出现了许多边缘检测方法,它们适用于不同的环境[2]。因此,边缘检测也是该文所研究的一个重要内容。
阈值分割方法是一种常见的区域并行技术,原理上利用1个或者多个阈值对像素点的灰度直方图进行区分,将其分成几个不同的类,得到的像素灰度值在同一类的属于同一个物体。由于直接利用灰度直方图可以简化计算的部分,因此,选取一个适合的阈值就显得尤为重要。想要找到合适的阈值就离不开一个准则函数[3]。而在实际的研究中,选择合适的阈值并不容易,影响阈值设定的主要因素有光的亮度以及噪声。随着研究的进步,逐步发展了几种解决上述问题的办法,应用比较广泛的有自适应阈值法、最大熵法、类间阈值法以及模糊阈值法等。并且为了保证准确性,至少会采用2种或者更多方法来确定阈值。
首先把想要处理的原始 图像假设为f(x,y),阈值分割的主要任务就是将原始的输入函数转 化成输出函数g(x,y),如公式(1)所示。
式中:p为阈值;t0为0;t1为1。
边缘分割算法的表面意思是指基于边缘处的分割算法,对图像的不同区域进行搜索,其目的是识别区域之间的边界,从而完成分割。具体方法就是运用边缘检测算子找出不同区域中的边缘像素,把这些边缘像素连接起来并对其进行标注,连接在一起的边界就是区域边界[4]。
图像的边缘实际上就是一些像素,不过像素发生了空间突变,这些变化在空间形状上表现为阶跃状和屋顶状。阶跃状边缘位于其两边的像素灰度值有突出变化的地方;屋顶状边缘位于灰度值从增加到减少的地方。
边缘检测的实质就是计算图像上发生变化的像素的导数。一阶导数通常用来检测原图像中的一个点是否在斜波上。然后通过二阶导数得出过零点的位置,边缘的正确位置对应一阶导数的最大值或者二阶导数的过零点。常用的边缘检测算子有一阶微分算子(例如Roberts算子、Prewitt算子和Sobel算子)、二阶微分算子(例如Laplacian算子)、Kirsch算子、Frei-Chen综合正交算子、Canny算子以及LOG算子[5]。该文主要对Roberts算子、Prewitt算子、Sobel算子和LOG算子进行详细介绍。
1.2.1 Roberts 边缘检测算子
Roberts是最早的边缘检测算子,是一种能够通过局部差分完成检测的算子,能够精准地对边缘进行定位,经常用于噪声较小且边缘陡峭的图像分割中[6]。
函数的梯度定义如公式(2)所示。
为了给照片增加冲击力并定格画面,建议使用一至两个外置闪光灯。Dina用的是尼康SB-910。打光时要注意均匀,以免出现醒目的阴影。
图像的梯度如公式(3)所示。
1.2.2 Sobel 边缘检测算子
如果利用Sobel算子提取边缘信息,就可以用Sobel检测算子对像素点的灰度进行一阶求导,从而得到梯度值,进而可以得到图像的边缘。
Sobel算子使用的卷积核大小为 3×3 的矩阵。这种矩阵包括水平模板和垂直模板[7]。检测时,它们分别在水平方向和垂直方向上有作用,如公式(5)所示。
1.2.3 Prewitt 边缘检测算子
Prewitt 边缘检测算子属于一阶微分算子,进行边缘检测时,在图像空间上利用水平 方向的模板和垂直方向的模版与图像进行卷积,水平模板检测水平边缘,垂直模板检测垂直边缘[8]。
Prewitt算子模板,如公式(6)所示。
1.2.4 高斯-拉普拉斯算子(LOG)
高斯-拉普拉斯算子是高斯和拉普拉斯2个算子的双结合,因此,LOG算子具有两者的优势,通过高斯算子能够很平滑地处理目标,在开始真正的检测时,可以充分地提高目标自身 的品质和质量,相当于为目标镀了一层金,最后用拉普拉斯算子求取边缘,可以将其看作是二阶导函数[9]。
拉普拉斯算子如公式(7)所示。
拉普拉斯算子的卷积模板如公式(8)所示。
首先采用基于阈值分割算法对图像进行分割,并且采用2种方式选择阈值,第一个仿真是采用人工选择的阈值,笔者选择了2个阈值。先得到该图像的灰度直方图,根据观察选取的阈值为150和200,仿真结果分别如图1、图2所示。可以看出选择的阈值不同,实验结果也不同,阈值为150的仿真结果更佳。
图1 阈值150的分割图像
图2 阈值200的分割图像
这2个阈值的选择是根据灰度直方图来判断的,灰度直方图符合双峰分布的特征,阈值是在峰谷的位置,由结果可知,阈值的选取会影响图像分割的效果。第二个仿真是采用经典的Otsu算法自动选取的阈值,这种算法最大的特点就是根据图像本身的特点自动选择阈值,原理上与统计中的方差分析有关系。Otsu算法自动选取阈值的仿真结果如图3所示。
图3 Otsu阈值分割
为了实验的严谨性,选择2个阈值进行观察,由上述仿真结果可知,阈值为150的图像分割与Otus自动选取法的结果还是较为相近的,但是另一个结果相差较远。由此可见,选择阈值为150是合理的。
检测算子的仿真是在灰度图的基础上完成的,仿真结果如图4~图7所示。4张图分别为Roberts、Sobel、Prewitt和LOG算子的分割结果图像,对分割后的结果进行比较分析。
图4 Roberts算子分割结果
图7 LOG算子分割结果
观察仿真结果,Roberts算子分割后的边缘比其他边缘的连续性好,但是漏检的内容较多,而且得到的边缘较粗。Sobel和 Prewitt算子的仿真结果较为相似,但是比较分散(不连续)。而LOG算子漏检的内容是最少的,分割之后图像呈现的内容也较多。
该文主要研究图像处理技术中的几种比较基础且重要的检测算法,并对阈值分割算法和边缘检测算法的仿真结果进行详细分析。在进行阈值分割时,根据灰度直方图选择的阈值只能通过经验来判断,因此人为因素会干扰仿真结果,在目前的研究中,人们也采取了新的方法避免外部因素的影响。而利用Otsu方法自动选取阈值的方法非常方便且应用较为广泛,但是Otsu算法也不是万能的,当分割的目标与背景的大小比例较大时,所呈现的效果并不理想。
图5 Sobel算子分割结果
图6 Prewitt算子分割结果
基于边缘的分割方法在进行分割仿真时都有自己明显的缺点,但这并不影响它在研究中的地位,它凭借操作简单、超高效率、计算量小以及运行稳定等优点被广泛应用于相关研究中,在某些情况下稍加改善,结果也较为理想。未来图像分割技术会有广阔的应用前景,并会不断进步出现新的理论。