张喜红
(1.亳州职业技术学院,安徽 亳州 236800;2.山东大学 控制科学与工程学院,山东 济南 250061)
基于Canny算子脑部CT边缘检测方法的研究
张喜红1,2
(1.亳州职业技术学院,安徽 亳州236800;2.山东大学 控制科学与工程学院,山东 济南250061)
摘要:鉴于经典Canny算法在脑部CT图像应用中存在的问题和缺陷,在深入分析经典Canny算法执行步骤的基础上,提出了一种改进的边缘检测方法,即用中值滤波与高斯滤波相结合,替代传统Canny算子的单一高斯滤波;用迭代算法自动计算阈值,替代经验固定阈值。实验结果表明,改进方法比传统方法更具准确性与普适性,减少了边缘错检、漏检的情况。
关键词:脑部CT; 中值滤波; 高斯滤波; 迭代算法
0引言
医学图像是医生诊断疾病的主要参考依据,传统的医学图像阅片准确度,主要依赖于医生的主观经验,误诊错判事件多发。当前计算机技术得到了前所未有的发展,数据挖掘技术已延伸至图像处理领域,医学影像储存管理系统(即PACS系统)也在各级医院得到了广泛使用。基于上述背景,通过对医学图像数据挖掘,在PACS系统的基础上,建立一套医学影像计算机辅助诊断系统,提高医学图像诊断的准确度,具有现实的意义。国内外许多学者以人体多个部位、多种类型的医学影像图片作为研究对像,开展了大量关于本领域相关关键技术的研究。这些研究工作主要包括:医学图像的滤波、边缘检测分割、特征提取、数据挖掘等[1,2]。医学图像的边缘检测是特征提取、数据挖掘分析的基础,边缘检测的准确度直接影响医学影像感兴趣区域特征提取的准确度,进而影响后续工作的进行。因此,引来了众多学者在此方面的研究,并提出了众多算法。常见的图像边缘提取算法有:梯度算子(如:罗伯茨算子、Prewitt算子、Sobel算子等),Log算子和canny算子[3]。因传统canny算了在消除噪声方面性能较好,因此得到了在众多领域的应用。本文针对传统Canny算子在脑部CT边缘检测应用中,存在伪边,边界模糊,且经验固定阈值不具普适性的问题,从滤波环节、与阈值选取环节两方面入手对其进行了方法改进。
1样本图像构造及相关理论
1.1样本图像构造
在算法的改进研究实验中,首先从山东省济南市某医院的PACS数据库中,选取一幅较为清晰的脑部CT图像,脑部CT图像原始图的扩展名为dcm,即为DICOM格式图像。为了利用Matlab2010图像工具箱对进行后续处理,先将其通过函数dicomread()读入,再使用dicomwrite()将其输出转化为bmp格式的脑部CT图像,如图1(a)所示。为了使实验样本图像更具典型,接着通过imnoise(I,'gaussian',0,0.01)与imnoise(f,'salt & pepper',0.01)语句为图像添加高斯噪声与椒盐噪声,以便模拟在真实图像采集、储存等环节中混入的噪声。所构造的脑部CT样本图像,如图1(b)所示。在算法的验证实验中,所采用的测试图像也是来源于山东省济南市某医院的PACS数据库。
(a)脑部CT原图 (b)构造的脑部CT样本图像图1 脑部CT原图与构造的脑部CT样本图像Fig.1 The original image and the sample image
1.2传统Canny边缘检测理论
Canny算子是由Canny.JF等人于1986年提出的一种广泛用于图像边缘检测的算法,其集图像去噪、图像增强及边缘检测于一体,是一种多级级联图像边缘检测算子[4]。Canny边缘检测算子的设计思想源于自己提出的3项准则,即一个优秀的边缘检测算子应具有较高的信噪比、较高的定位精度和较好单边缘响应。Canny算子的执行过程主要由4个步骤构成[5]:图像去噪平滑;对去噪平滑输出图像的梯度幅度和方向进行计算;对所求得的梯度幅值进行非极大值抑制;采用高、低双阈值进行边缘检测与连接。
1)图像平滑
传统Canny算子在进行边缘检测时,首先采用一高斯滤波器与原图像做卷积运算,实现图像的平滑,如式(1)所示。其中,G(x,y,δ)是高斯函数,δ为高斯函数的标准方差;f(x,y)代表原始图像;I(x,y)代表滤波输出图像。
I(x,y)=G(x,y,δ)*f(x,y)
(1)
2)求解梯度幅值和方向
选用2行、2列模板邻域的一阶偏导的有限差分,沿行、列两个方向,对经式(1)处理后的图像进行梯度幅值和方向的计算。具体运算的数学表达如式(2)、式(3)、式(4)所示。其中M(x,y)代表梯度幅值;H(x,y)代表梯度方向;kx和ky代表图像经fx、fy滤波器行、列作用的结果。
(2)
H(x,y)=arctan[kx(x,y),ky(x,y)]
(3)
(4)
3)梯度幅值非极大值抑制
对原图像所有像素点的梯度幅值M(x,y)与沿梯度方H(x,y)的一对相邻象素点的梯度幅值进行比较,若一像素点的梯度幅值小于沿其梯度方向一对相邻象素点的梯度幅值,则认为这一点为非边缘象素点,反之,可能为边缘象素点。
4)双阈值法检测和连接边缘
根据图像特征需事先设定双阈值[LtHt],其中Lt代表低阈值,Ht代表高阈值。将经第三步处理过的像素梯度幅值,逐个与Ht和Lt进行比较,若某像素梯度幅值M(x,y)>Ht,则此像素点为边缘像素点;若M(x,y)
2改进Canny边缘检测方法
2.1滤波方法的改进
由1.2节的理论可知,传统Canny算子虽然在去噪与边缘细节取舍上做了较好的设计。但在实际应用中,因图像采集中会融入众多类型的噪声,如高斯噪声、椒盐噪声等[6,7]。从式(1)可知,传统Canny算子在图像平滑环节使用了单一的高斯滤波G(x,y,δ),并且高斯滤波器的标准方差δ存在不确定性,设置多依赖于人为经验,不便确定。δ参数对边缘检测的定位精准度非常关键,对于不同的图像使用同一δ值,或对于同一图像使用不同δ值,均会得到不同的效果。经比较实验证实,高斯滤波器能有效实现高斯噪声的降噪处理,但对散点状分布的椒盐噪声的降噪结果不太理想。中值滤波方法对散点状分布椒盐噪声的降噪效果相对显著。因此,在算法的改进中采用中值滤波同高斯滤波相结合的方式,即先中值后高斯的方式。在脑部CT的边缘检测中收到了较好的效果。二维中值滤波其表达如式(5)所示:其中A代表滤波窗大小,其大小与滤波效果密切相关,根据脑部CT图像内容的特征,最终确立选用3×3的窗口尺寸;{fij}代表要处理的图像二维数据序列。yij代表滤波输出。
(5)
2.2双阈值设置的改进方法
通过对传统Canny算子的双阈值检测法介绍可知,高、低阈值的设置具有不确定性,主要依赖人工经验所得,而且对于同一图像采用不同的双阈值,或者不同的图像采用同一对双阈值,边缘检测定位的精准度有所差异,因此导致Canny算子在实际应用中普适性、兼容性较差。在算法的改进中,采用迭代算法[8]实时计算被处理图像的高、低阈值,实现依图而设、有针对性的处理,提升了算法的普适性。双阈值的迭代计算过程如下:
1)通过灰度统计运算,求得待处理图像的灰度最大值Zmax与灰度最小值Zmin,接着以T0=(Zmax+Zmin)/2为初次迭代阈值;
2)执行迭代循环,每次循环,都是以上一次求得的阈值Tk把图像分割为两部分,即一部分是所有灰度值大于阈值的前景,另一部分是所有灰度值小于阈值的背景。接着计算出前景的平均灰度值,记作Za;然后计算出后景的平均灰度值,记作Zb。式(6)和式(7)中f(i,j)代表图像上(i,j)像素点的灰度值,N(i,j)是(i,j)像素点的权系数,通常选用1。
(6)
(7)
3)把前景与后景的平求灰度值求平均做为新阈值Tk+1,Tk+1=(Za+ Zb)/2;
4)判断Tk+1与Tk相等与否,若相等便停止迭代循环运算,否则继续跳转到第二步进行迭代循环运算。若相等,结束迭代循环运算,执行下一步。
5)将最后求得的Za、Zb赋值于传统Canny算子的高、低阈值,作为双阈值,替代了人工设定。
2.3改进Canny边缘检测的实现步骤
经过改进后的Canny 算法执行流程及其在Matlab2010中的关键函数如下几步所示:输入图像并进行灰度变换;通过imread([pathname, filename])函数将图像读入,并对其类型进行判别,如果不是灰度图像,通过rgb2gray(I)函数将其转换为灰度图像;对图像实施中值与高斯二级滤波,用medfilt2(I,[3 3])语句实现中值滤波,高斯滤波用fspecial(’Guassian’,h,s)函数与imfilter(I,fn_gau)实现;计算梯度(见1.2节);非极大值抑制(见1.2节);迭代运算求解双阈值,在Matlab 2010平台下按2.2节的方法编写迭代循环实现;利用双阈值连线,输出边缘图像,输出图像函数为imshow(I)。
2.4实验结果与分析
在Matlab 2010平台下,分别利用传统的Canny 算法与改进的Canny算法,首先对图1中的脑部CT样本图像,通过imnoise(I,'gaussian',0,0.01)与imnoise(f,'salt & pepper',0.01)2项函数,先后加入方差值为均为0.01高斯与椒盐噪声。模拟现实环境中采集的含噪脑部CT样本,接着对其使用自编的改进算法程序与传统Canny算法进行边缘检测。传统Canny算法用edge(double(I),'canny',[LtHt],sigma)实现;其中[LtHt]是双阈值的区间,sigma是高斯滤波器的标准方差。在改进算法中高、低阈值的迭代计算结果为:[0.01,0.17],sigma取值为2;使传统算法的这两项参数与改进算法取相同的值。得到如图2和图3所示的对比结果,通过观察图2可以看出,构造的脑部CT图像通过中值滤波与高斯滤二级滤波后,不仅有效的消除了各种噪声,且能较好的提升了图像的边缘细节特征的对比度,使边缘细节更加明显。由图3可知,传统算法,因噪声影响,使的边缘检测结果存在漏检的情况较为严重,改进算法的边缘检测结果基本上没有虚边、伪边,且比较细腻清晰。
图4和图5是对某病人的真实脑部CT图像边缘检测的结果对比,可以看出改进算法无需事先设定双阈值,而是自适应因图而设,在检测精度上比传统算法更为精准。由此可见,改进算法在性能上有所提高,且更具普适性。
(a)滤波前 (b)滤波后 图2 脑部CT样本图像滤波结果对比Fig.2 Sample image filtering result contrast
(a)改进算法边缘检测结果 (b)传统算法边缘检测结果图3 脑部CT样本图像边缘检测结果对比Fig.3 Sample results of image edge detection
(a)滤波前 (b)滤波后图4 某病人脑部CT图像滤波结果对比Fig.4 A patient brain CT image filtering result
(a)改进算法边缘检测结果 (b)传统算法边缘检测结果图5 图4病人脑部CT图像边缘检测结果Fig.5 Figure 4 patients brain CT image edge detection result
3结语
基于传统Canny算法在脑部CT边缘检测中,存在去噪与边界模糊的矛盾,并且所需的双阈值依赖人为经验,且不能动态选取因图而设,研究从去噪平滑与阈值设定两方面入手,以构建的脑部CT仿真样本图像为材料,通过多次实验,对传统Canny算法进行了两方面的改进,其一是将滤波环节改为3×3邻阈中值滤波与标准方差为2的高斯滤波;其二是采用迭代算法有针对性的适时计算被检测图像的双阈值。通在Matlab 2010平台下采取相同的参数设置,对部分真实图进行边缘检测,验证了改进算法较传统算法边缘定位更加精准。
参考文献:
[1] 王立军.基于关联规则的医学图像分类研究[D/OL].江苏:江苏大学,2006:10-13[2015-7-18]. http://www.cnki.net./KCMS/detail/detail.aspx?QueryID=3&CurRec=1&recid=&filename=2006173903.nh&dbname=CMFD2009&dbcode=CMFD&pr=&urlid=&yx=&uid=WEEvREcwSlJHSldSdnQ1ZXJhZitUbHhr
V0FlZ3ZHOWQ2WTdob2VxU3JVS1ZMZG1NVVdhWEts
OFhaZVg1bVVxSm9RPT0=MYM9A4hF_YAuvQ5obgVA
qNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&v=MjQwODR1eFlTN0RoMVQzcVRyV00xRnJDVVJMK2V
aZWRvRmlEaFZyM09WMTI3R0xLL0hkak1ySkViUElSOG
VYMUw=.
[2] 冷美萍,鲍苏苏,孟祥玺.一种改进的分水岭分割算法[J].贵州师范大学学报(自然科学版),2010,28(1):62-65.
[3] 朱丙丽.脑部CT图像分割算法改进及实现[D/OL].四川:西南交通大学,2010:18-19[2015-7-14].http://www.cnki.net./KCMS/detail/detail.aspx?QueryID=11&CurRec=1&recid=&filename=2010121970.nh&dbname=CMFD2010&dbcode=CMFD&pr=&urlid=&yx=&uid=WEEvREcwSlJHSldSdnQ1ZXJhZitUbHhr
V0FlZ3ZHOWQ2WTdob2VxU3JVS1ZMZG1NVVdhWEts
OFhaZVg1bVVxSm9RPT0=MYM9A4hF_YAuvQ5obgVA
qNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!&v=MTc4MjVySzZIOWpMcjVFYlBJUjhlWDFMdXhZUzdEa
DFUM3FUcldNMUZyQ1VSTCtlWmVkb0ZpRGhXcjNKVj
EyNkg=.
[4] 王小俊,刘旭敏,关永.基于改进Canny 算子的图像边缘检测算法[J].计算机工程,2012,38(2):196-200.
[5] FURUKAWA Y,PONCE J.Carved Visual Hulls for Image-based Modeling[J].International Journal of Computer Vision,2009,81(1):53-67.
[6] 范建坤.基于小波变换的图像阈值去噪算法研究[J].贵州师范大学学报(自然科学版),2013,31(4):89-91.
[7] 周林勇,谢晓尧,刘志杰.无纸化阅卷中图像噪声的去除研究与优化[J].贵州师范大学学报(自然科学版),2013,31(1):84-87.
[8] 陈若珠,薛彪.基于MATLAB的改进Canny算子的图像边缘检测研究[J].工业仪表与自动化装置,2014,238(4):113-116.
Improving Canny operator based on CT image of the brain
ZHANG Xihong1,2
(1.Bozhou Vocational and Technical College,Bozhou,Anhui 236800,China;2.School of Control Science and Engineering,Shandong University,Jinan,Shandong 250061,China)
Abstract:In order to overcome the problems and deficiencies caused by traditional canny operator segmentation algorithm in the application of brain CT, an improved method of image edge detection is introduced in the paper.This method uses median filter in combining with Gaussian filtering after analysis of traditional canny operator segmentation algorithm. To replace the fixed threshold, interative algorithm is used to calculate the threshold. Experimental results show that the proposed method possesses better ability of accuracy and universal and lower rate of wrong detection and miss detection than the traditional methods.
Key words:brain CT; median filter; gaussian filter; iterative algorithm
文章编号:1004—5570(2016)02-0080-04
收稿日期:2015-10-26
基金项目:山东省科技重大专项(新兴产业)项目(2015ZDXX0801A01);山东大学基本科研业务费资助项目(2015QY001);安徽省教育厅医用电子仪器与维护省级特色专业质量工程项目(20101459);安徽省教育厅医用电子仪器省级实习实训示范中心质量工程项目(2011131)
作者简介:张喜红(1983-),男,硕士,讲师,研究方向:嵌入式系统开发,图像处理方法,E-mail:zhangxihong1983@163.com.
中图分类号:TP391
文献标识码:A