彭微
基于Canny算子的肝脏CT图像边缘检测的实现
彭微
目的:实现对肝脏CT图像中肝脏区域的边缘检测,以便于后期的肝脏三维重建,为医师的诊断提供辅助。方法:利用Canny算子边缘检测算法对肝脏CT图像中肝脏区域进行边缘检测,把边缘检测问题转化为检测单位函数极大值的问题,主要流程包括输入图像、高斯平滑、检测边缘、边缘细化、边缘定位、输出图像。结果:该算法能较理想地检测出肝脏组织的边缘,同时具有平滑噪声的功能。结论:Canny算法较好地平衡了信噪比和检测精度这2个分割标准之间的矛盾,非常适合对肝脏CT图像分割的预处理。
Canny算子;肝脏CT图像;边缘检测;高斯平滑
肝脏位于人体腹部,是人体最大的消化器官。常见的肝脏疾病有肝炎、肝硬化和肝癌,其中肝癌是我国最常见的癌症之一,对人们的生活造成了严重的危害。随着医学成像技术在临床诊断和治疗上的作用日益显著,肝脏CT图像分割成为医学图像分析领域的一个挑战性的研究课题。通过把肝脏组织从肝脏CT图像中分离出来,获取其解剖、病理、生理、物理等方面的信息,从而进行肝脏的三维重建及可视化处理,可以为医师的诊断及治疗方案的制定提供辅助。然而,在肝脏CT图像中,除了肝脏组织还包括胃、脾、胰脏、肾等组织器官,这些器官构造相似、密度接近,在CT图像上表现出灰度差别不大、界线模糊等特点[1]。采用传统的图像分割方法对其进行分割时很难准确地找出肝脏的边界,易造成漏分割和过度分割[2]。因此,为了实现肝脏器官的三维重建,如何准确、有效地从二维肝脏CT图像中提取出肝脏组织的边缘就成为首要解决的问题[3]。
图像的边缘定义为图像中灰度发生急剧变化的像素集合,包含图像中用于识别的有用信息,是图像最基本也是最重要的特征之一[4]。因此,对边缘进行检测是所有基于边界的图像分割算法中最基本的处理方法,在图像处理中具有十分重要的意义。边缘检测基于像素灰度的不连续性,可以采用对像素求一阶或者二阶导数,得到过零点和极值点来确定目标的边界。但是医学图像中通常存在噪声,其在空间域也表现为灰度有比较大的起落。采用求导可能会得到伪边缘点,这也是边缘检测方法中要解决的一个困难。基于以上背景,本文实现了一种受噪声影响较小的边缘检测方法——Canny算子边缘检测算法。
2个相邻的具有不同特性的区域在边界处总会存在灰度的突变,这种突变可以很方便地采用求导检测到。常见的边界处灰度变化类型有阶跃状和屋顶状2种,如图1所示。
检测阶跃状边缘,可以通过求一阶导数得到极值点,即求得边缘点;检测屋顶状边缘,可以通过求二阶导数得到极大值点,即求得边缘。在数学上,求导和求微分过程是一样的,因此我们把这种方法称为微分算子法[5]。
常用的微分算子有梯度算子、拉普拉斯算子和Canny算子等。梯度算子相当于一阶导数算子,求一阶导数会扩大噪声,因此梯度算子虽然简单,但不是理想的微分算子,不太适合分割医学图像。拉普拉斯算子是一种二阶导数算子,双倍加强噪声的影响。另外,它常产生双像素宽的边缘,且不能提供边缘方向的信息,因此很少直接用于边缘检测[4]。
图1 图像边缘实例
相比上述传统的微分算子,Canny算子是性能比较优良的边缘检测算子,是高斯函数的一阶导数[6]。Canny算子能对图像进行平滑,较好地平衡信噪比和检测精度这2个分割标准之间的矛盾,因此,应用非常广泛。
2.1 Canny算子
Canny算子的基本思想是先将图像使用高斯函数进行平滑,再由一阶微分的极大值确定边缘点。因此,Canny算子把边缘检测问题转化为检测单位函数极大值的问题。为了对边缘检测方法的有效性进行评估,Canny算子提出了3个边缘检测准则[7]:
(1)高的信噪比(signal-noise ratio,SNR)。SNR越大,噪声对图像分割的结果影响越小,检测到的伪边缘点越少,提取的边缘质量越高。这里的信噪比SNR定义为
其中,G(x)代表边缘函数,h(x)代表宽度为W的滤波器的脉冲响应,σ代表高斯噪声的均方差。
(2)高的边缘定位精度L。L定义为
由式(2)可知,L越大越好。L越大表明检测到的像素点就很可能是边缘,该算法对边缘的定位就越准确。
(3)精确的单边缘响应。对边缘定位之后,要保证边缘只包含一个像素。其方法就是使检测算子的脉冲响应导数的零交叉点平均距离D(f′)满足
通过数学方法可以将上面3个标准进行求导整合,得到一个近似于具有平滑功能的高斯函数一阶导数的一个表达式。此即为最佳边缘检测算子的一个最好近似,称为Canny算子。
2.2 Canny算子边缘检测过程
根据以上分析,利用Canny算子检测边缘的过程如下(如图2所示):
图2 Canny算法流程图
(1)将高斯函数G(x,y)与原始图像f(x,y)进行卷积,以滤掉图像噪声,其运算的数学表达式为[8]
(2)利用导数算子计算滤波后图像中的每个像素的梯度幅值和方向。求使梯度幅度最大的点,确定边缘。
(3)由步骤(2)得到的梯度幅值极大值附近会产生屋脊带,必须进行细化,以只保留梯度幅度变化最大的点。由此,才可能较精确地确定边缘位置,这个过程为“梯度非极大值抑制”。
(4)经过步骤(3)细化后的边缘中仍旧会存在假边缘,因此还需要剔除伪边缘点。常用的方法是:选用2个门限阈值T1>T2,灰度值大于T1的像素点为边缘,小于T2的不是边缘;灰度属于区间[T1,T2]的像素,依据其邻接像素中是否有大于T1的边缘像素来判定其是否为边缘,有即是边缘,反之亦然。
现根据前面的算法过程对来源于华中科技大学同济医学院附属同济医院的一组CT临床腹腔图像(24层)中编号为n=197的人体肝脏CT图像进行边缘检测,检测结果如图3所示,(a)为原始CT图像,(b)、(c)、(d)为经过Canny算子边缘检测的结果,所用高斯平滑参数σ分别为1、1.5和2。
由图3可知,Canny算子提取的边缘较好,能较清晰地勾画出肝脏的边界,且图中几乎不见空洞,说明能很好地抑制噪声。通过对实验过程及结果进行分析,发现Canny算法具有以下特点:
(1)σ控制着平滑程度。选取不同参数σ的高斯滤波模板,平滑的效果是有差别的,如图3(b)、(c)、(d)所示。图3(b)中采用的σ小,滤波效果要差一些,但是图像却比图3(c)、(d)清晰,这说明σ越大其作用域就越宽,即平滑窗口越大,因而平滑的力度就越大,但是边缘也被平滑了,结果使得图像变得越模糊。
(2)双门限检测时,T1的选择很关键。T1选择过大,会漏掉一些边缘点,使边缘出现间断;而T1选择过小,又可能出现大量伪边缘,导致很难检测出单边缘,且在一个边缘点会出现多个响应。这些问题影响了Canny算法的应用效果,但是可以对算法进行相应的改进来提高分割精度,比如先对原始图像采用Otsu法[9],得到待分割区域的最佳最小阈值,就可得到非常理想的T1,可使检测达到单像素级,减少伪边缘等。如图3(b)、(c)、(d)中的边缘都比较完整、细锐,几乎没有虚假边缘。
图3 Canny算子边缘检测结果
(3)Canny算子的计算量较大,使得运算速度较区域生长法[10]要慢,花费时间较长,但是其检测精度和信噪比较区域生长法要高,且对硬件的要求不高。
在对人体肝脏CT图像进行分割时,我们最终的目的是要得到肝脏区域,否则无意义。很显然,Canny算法还达不到最后分割的要求,但是作为分割链的前处理或者中间步骤,是非常适合的。选择Canny算子作为边缘检测的算法基础和其他的方法结合,最后得到肝组织图像,是研究者经常采用的肝脏CT图像分割处理方法。
人体肝脏CT图像分割是医学图像分割中的一个难点,本研究通过进行多次实验论证,从实用性的角度出发,阐述了利用Canny算子进行肝脏CT图像边缘检测的方法和步骤。实验证明,该算法检测精度高,能得到较准确的肝脏边界,且具有信噪比大的优点,能更好地平滑图像,非常适用于肝脏CT图像分割的预处理或者中间环节,为肝脏组织的三维重建、可视化处理和虚拟手术技术的研究奠定了良好的基础。
[1]吴小鹰.基于腹部CT平片的肝脏三维重建研究[D].重庆:重庆大学,2003.
[2]彭微.基于区域的肝脏病灶CT图像分割及实现[J].信息技术,2011,35(11):132-133.
[3]张小萍,朱志松,王君泽.基于CT医学图像的边缘提取研究[J].生物医学工程研究,2009,28(1):31-34.
[4]章毓晋.图像分割[M].北京:科学出版社,2001.
[5]Tamar P,Davis M.A study of edge detection algorithms[J].CGIP,1982,20:1-21.
[6]周晓明,马秋采,肖蓉.基于Canny算子的改进的图像边缘检测方法[J].影像技术,2008(4):17-20.
[7]林卉,赵长胜,舒宁.基于Canny算子的边缘检测及评价[J].黑龙江工程学院学报,2003,17(2):3-8.
[8]燕杨,王云吉.Canny边缘检测算子研究及其在医学图像中的应用[J].吉林工程技术师范学院学报,2012,28(3):75-77.
[9]彭微.基于最大类间方差法的肝脏CT图像分割及实现[J].信息技术,2014(3):124-125.
[10]彭微.连接门限阈值法在肝脏CT图像分割上的应用[J].咸宁学院学报,2011,31(6):72-73.
(收稿:2014-07-24 修回:2014-11-23)
Realization of liver CT image edge detection based on Canny algorithm
PENG Wei
(School of Biomedical Engineering,Hubei University of Science and Technology,Xianning 437100,Hubei Province,China)
ObjectiveTo achieve liver region edge detection from liver CT image for the following 3D liver reconstruction. MethodsEdge detection of liver CT images was turned into solving of unit function maximum by using Canny edge detection operator,and the flow involved in the links of image input,Gauss smoothing,edge detection,edge thinning,edge location and image output.ResultsThe algorithm could be used for the edge detection of the liver,with the function of noise smoothing.ConclusionCanny algorithm behaves well in SNR and precision,and thus can be used for the pretreatment of liver CT image segmentation.[Chinese Medical Equipment Journal,2015,36(6):43-45]
Canny operator;liver CT image;edge detection;Gauss smoothing
R318;R445
A
1003-8868(2015)06-0043-03
10.7687/J.ISSN1003-8868.2015.06.043
湖北科技学院校级科研项目(KY12087)
彭 微(1981—),女,讲师,主要从事生物医学工程方面的研究工作,E-mail:vivipw7958@163.com。
437100湖北咸宁,湖北科技学院生物医学工程学院教学办公室(彭 微)