基于均值滤波的改进 Canny 算法在核磁共振图像边缘检测中的应用
李健1,2, 李赫宇1,3, 姚汝婧1, 吴林2,4
1.吉林农业大学 信息技术学院,长春130118
2.吉林省生物信息学研究中心,长春 130118
3.长春科技学院 教务处,长春 130600
4.吉林农业大学 园艺学院, 长春 130118
通信作者:吴林(1970-),男,教授,硕士生导师.研究方向:生物信息学.E-mail:wulin777@aliyun.com

作者简介:李健(1981-),男,副教授,博士.研究方向:时空表示与推理,偏微分方程,物联网.E-mail:liemperor@163.com

摘要

以腰椎间盘的核磁共振图像(MR图像)为研究对象,采用Canny算法进行边缘提取,并针对MR图像灰度变化不明显的特点,预先对图像分别进行对比度增强和锐化处理。同时针对Canny算法中由于高斯滤波器导致的噪声敏感性问题,对传统Canny算法进行改进,将高斯滤波器改为均值滤波器。试验结果表明,相比于传统算法,运用基于均值滤波改进的Canny算法对增强对比度后的MR图像进行边缘检测,在真实边缘检出率相同、算法复杂度相同的情况下,噪声检出率降低了90%。

关键词: 信息处理技术; 图像处理; 边缘提取; Canny算法; 均值滤波; MR图像
中图分类号:TN919 文献标志码:A 文章编号:1671-5497(2016)05-1704-06
Check of MR image edge information of lumber intervertebral disc using an improved Canny algorithm
LI Jian1,2, LI He-yu1,3, YAO Ru-jing1, WU Lin2,4
1. College of Information Technology, Jilin Agricultural University, Changchun 130118,China
2.Bioinformatics Research Center of Jilin Province, Changchun 130118,China
3.Dean's office, Changchun Sci-Tech University, Changchun 130600,China
4.College of Horticulture, Jilin Agricultural University, Changchun 130118,China
Abstract

In this paper, the Magnetic Resonance Images (MRIs) of lumbar disc are taken as the research objects, and the Canny edge detection algorithm is applied to extract the edge. To overcome the problem that the difference of the gray of the MRI edge is not obvious, enhance contrast and sharpening processing are used to process the image in advance. To solve the problem that in Canny algorithm Gaussian filter may lead to noise sensitivity, the Gaussian filter is replaced by an average filter to improve the performance of the Canny algorithm. Experimental results show that, compared with traditional algorithm, the noise of the image is reduced by 90% by using the improved Canny algorithm to detect MRI after enhancing the contrast.

Keyword: information processing technology; image processing; edge extracting; Canny algorithm; mean filter; MR image
0 引 言

核磁共振成像(MRI)是断层成像技术中的一种, 它利用磁共振现象从人体中获得电磁信号, 并重建出人体信息。MRI已经可以应用于全身各系统的成像诊断, 尤其对于颅脑、脊髓、心脏大血管、关节骨骼、软组织等成像效果更佳, 且对人体没有伤害。同时, 相比于CT、X射线成像等其他医学成像技术, MRI可以做多个切面图, 且空间分辨率更高, 相比于其他医学图, MR图像所包含的信息更多。由于MR图像中存储着巨大的信息, 而有些信息通过人工手段无法获取, 因此利用计算机智能算法辅助处理MR图像已经成为一种趋势。

在MR图像中不同结构的解剖和病理的断面是以不同的灰度来显示[1]。同一灰度表示相同的断面, 因此信息量较小, 而大量信息储存在灰度剧烈变化的地方, 也就是图像边缘[2]。随着信息技术的不断发展, 图像边缘检测技术在很多领域有着极为重要的作用[3, 4]。从1965年起, 通过提取高频信号进行检测的Roberts算子[5]被提出, 但其效果并不理想, 之后学者们相继提出了Prewitt算子[6]和Sobel算子[7], 这些算子在图像没有噪声的情况下能实时、准确地检测出图像边缘, 且运算过程简单, 但是当图像含有噪声时, 由于算子对噪声的敏感性导致很难区分图像的噪声和边缘, 造成假边缘和边缘漏检的现象。同时, 检测出的图像边缘模糊, 边缘精细度不高, 所以在实际处理图像中效果并不理想。相比这些微分算子, 基于最优化算法的Canny算法[8, 9]因具有信噪比大和检测精度高等优点而被广泛应用, 并且成为评价其他边缘检测方法的标准。

传统的Canny算法在检测一般图像时具有较大的优势, 但是对于MR图像这类特殊图像具有一定的局限性, 原因在于MR图像相比于传统图像只存在灰度值, 而由于人体结构的复杂性, 使得灰度阶变化范围较小, 导致了在进行计算机处理时算法识别不准确, 传统的Canny算法在检测时同样存在检测到假边缘以及真实边缘检测模糊的现象。基于以上不足, 本文对传统Canny算法进行改进, 使它对MR图像有较好的适应性。

1 传统的Canny算法
1.1 传统Canny算法步骤

传统的Canny算法包括以下4个步骤[10, 11]

(1)一维高斯滤波函数 G(x)做平滑图像处理。具体步骤为用函数 G(x)分别按行和列对原始图像 f(x, y)进行平滑处理, 得到平滑后的新图像 I(x, y)

G(x)=12πσ2exp(-x22σ2)(1)

式中: σ为高斯函数的标准差, 控制平滑程度。

(2)计算梯度的幅值和方向。具体步骤为采用2× 2邻域内一阶偏导的有限差分计算 I(x, y)的梯度幅值 M(x, y)和梯度方向 H(x, y), 即:

M(x, y)=Ix(x, y)2+Iy(x, y)22H(x, y)=arctan(Ix(x, y), Iy(x, y))(3)

2× 2邻域模板的形式如下:

Ix=-0.50.5-0.50.5, Iy= 0.5 0.5-0.5-0.54

(3)对梯度幅值进行非极大值抑制, 找到 I(x, y)中所有可能的边缘点。具体步骤为:对 I(x, y)内的所有点用一个3× 3的邻域作矩阵计算, 记作 M(x, y)如果邻域中心点的 M(x, y)比梯度方向上相邻两个点的幅值都大, 则将当前邻域的中心点记为边缘点的可能点, 否则将 M(x, y)记为非边缘点, 赋值为0。

(4)双阈值法检测并连接边缘。具体步骤为:对图像 M(x, y)分别使用高、低两个阈值进行分割, 得到两个阈值边缘图像 TH(i, j)TL(i, j)由高阈值分割得到的图像 TH(i, j)不含有假边缘, 但同时图像轮廓可能存在间断, 因此采用低阈值获得的图像 TL(i, j)把边缘连接成轮廓。当达到轮廓端点时, 该算法就在图像 TL(i, j)的8邻域位置寻找可以连接到轮廓上的边缘。这样, 利用递归算法不断地在 TL(i, j)中搜集边缘, 直到将 TH(i, j)中所有的间隙都连接起来为止。

1.2 传统Canny算法在处理MR图像时存在的缺陷

由于MRI只有黑白灰三色组成, 其图像边缘相比于一般图像不明显。在Canny算法进行检测过程中由于一维高斯函数对图像的不敏感性, 可能导致检测出假边缘以及真边缘无法检出的问题。基于以上不足, 本文考虑对图像进行预处理, 即在高斯滤波之前使图像的内部与图像的边缘有明显区分, 从而进一步提高算法的边缘检出率。

2 改进的Canny算法

针对MR图像存在的对比度不明显的特点, 本文考虑对传统Canny算法进行改进。一方面, 对图像进行预处理, 在本文中使用调整图像对比度和对图像进行锐化两种最为常见的图像预处理方法, 使图像在进行Canny算法检测前有明显的图像对比。另一方面, 使用均值滤波算子代替传统算法中的高斯滤波算子来解决传统Canny算法的噪声敏感性问题。

2.1 图像预处理

在传统的算法中第一步就是利用高斯函数做平滑处理, 在改进算法中, 本文针对MR图像对比度不明显的特点在高斯平滑处理前加入一步, 采用对比度增强算法和图像锐化算法两种常用的图像处理方法对原图进行对比度调整。

2.1.1 对比度增强算法

对比度增强算法[12]已经是一个相当成熟的算法, 本文直接调用Matlab中的imadjust函数来实现原图的对比度增强。imadjust函数使用的算法如下:

Step1 读取原图像数据 f(x, y), 同时生成与原图大小相同的空白图像 j(x, y)

Step2 在 f(x, y)中设置亮度的最低值low_in以及最高值high_in, 定义区间[low_in high_in]。

Step3 在 j(x, y)中设置亮度的最低值low_out以及最高high_out, 定义区间[low_out high_out]。

Step4 在 f(x, y)按照区间[low_in high_in]以1%的饱和度提取图像, 并裁去区间以外的部分。

Step5 将上述图像映射到 j(x, y)上, 同样裁去区间[low_out high_out]以外的部分。

基于上述算法, 本文定义对比度增强矩阵为 low_outhight_outlow_inhight_in

通过上述算法可以得到不同区间上的一些变化图像, 如图1所示, 其中图1(a)为原图, 图1(b)为矩阵 0101增强后的图, 图1(c)为矩阵 0.10.90.10.9增强后的图, 图1(d)为矩阵 0.20.80.20.8增强后的图, 图1(e)为矩阵 0.40.601增强后的图。

图1 对比度增强效果比较图Fig.1 Contrast enhancement comparison chart

2.1.2 图像锐化算法

在图像锐化算法中可以分为线性锐化滤波器和非线性锐化滤波器两类。

线性锐化滤波器中最常用的是高通滤波器。这种滤波器必须满足滤波器的中心系数为正数, 其他系数为负数。线性高通滤波器的典型系数模板 f如式(5)所示:

f=-1-1-1-1-8-1-1-1-15

图像锐化后的结果比较如图2所示, 其中图2(a)为原图, 图2(b)为线性高通滤波图像。

图2 线性高通滤波图像Fig.2 Linear high pass filtering image

非线性锐化滤波就是使用微分对图像进行处理, 其算法是利用图像沿某个方向上的灰度变化率, 即原图像函数的梯度来锐化图像。梯度定义如下:

Δaf=f(a, b)-f(a+1, b)Δbf=f(a, b)-f(a, b+1)6

梯度模的表达式为:

φ|=|ξφ|+|ψφ|(7)

在实际处理中, 由于数据是离散的, 幅值是有限的, 其发生的最短距离是在两相邻像素之间。因此, 在数字图像处理中通常采用一阶差分来定义微分算子:

Δxf=f(x+1, y)-f(x, y)Δyf=f(x, y+1)-f(x, y)8

在算法使用过程中比较有名的微分滤波器算子包括Sobel梯度算子、Prewitt梯度算子和Log算子。算法求得的结果如图3所示, 其中图3(a)为原图, 图3(b)为Sobel算子结果, 图3(c)为Prewitt算子结果, 图3(d)为Log算子结果。

图3 非线性滤波图像Fig.3 Nonlinear filtering image

2.2 均值滤波器

Canny算法中由于高斯滤波函数导致对噪声敏感的问题, 因此本文考虑使用更为一般的算法— — 均值滤波算法[13]。均值滤波对抑制高斯噪声有较好效果, 属于线性滤波的一种, 在国内外都有专家、学者对该技术进行研究, 并且提出很多改进后的算法。由于图像已经经过预处理, 所以均值滤波算法可以更有效地过滤噪声, 而不会对真边缘产生影响。

均值滤波是典型的线性滤波算法, 它是指在图像上对目标像素给一个模板, 该模板包括了其周围的临近像素的平均值。

处理均值滤波最常用的方法是邻域平均法。其步骤为对原图像 f(x, y)选择一个模板, 该模板由其相互靠近的若干像素组成, 求模板中所有像素的均值, 再把该均值赋予当前像素点 f1(x, y), 并把 f1(x, y)映射到与 f(x, y)大小相同的 g(x, y), 其对应关系如下:

g(x, y)=1mf(x, y)(9)

式中: m为该模板中包含当前像素在内的像素点的总个数。

本文采用圆形均值滤波器对图像进行边缘检测, 其基本思想同样是用某像素点邻域的几个像素灰度平均值来代替该像素的灰度值, 但是最初取值的模板是圆形模板而不是常用的矩形模板, 其邻域的选取方式不同于一般的均值滤波器。圆形均值滤波器邻域的选取通常为以单位距离 Δx(两个像素点的横向或竖向距离值)为半径 r构成的4邻域或是以 2Δx为半径r构成的8邻域。这样每个邻域包括其自身共有 m×n个像素点, 圆形均值滤波的过程就是计算该点所在的区域中被干扰图像 f(x, y)的平均值, 任意点处复原的图像 g(x, y)的值就是用圆形模板定义的区域的像素计算出来的平均值:

g(x, y)=1mnf(x, y)(10)

3 结果与比较
3.1 与传统Canny算法比较

对上述原图采用Canny算法进行边缘检测, 结果如图4所示, 其中图4(a)为原图, 图4(b)为传统Canny算法检测后的边缘图像。

图4 原图和边缘检测图像Fig.4 Original image edge detection

对增强对比度后图像采用改进Canny算法进行边缘检测, 结果如图5所示, 其中图5(a)为原图, 图5(b)为通过 0101增加对比度后进行改进Canny算法检测的结果, 图5(c)为通过 0.090.3501矩阵增加对比度后进行改进Canny算法检测后的结果。

图5 增强对比度后的边缘检测图像Fig.5 Enhancing the contrast of image edge detection

对锐化后图像采用改进Canny算法进行边缘检测, 结果如图6所示, 其中图6(a)为原图, 图6(b)为高通滤波锐化边缘, 图6(c)为Sobel算子锐化边缘, 图6(d)为Prewitt算子锐化边缘, 图6(e)为Log算子锐化边缘。

图6 锐化后的边缘检测图像Fig.6 Edge detection of image after sharpening

通过腰椎间盘的MR图像片段试验对比可以看出, 图像以矩阵 0.090.3501进行对比度增强, 然后运用基于均值滤波改进的Canny算子, 在算法复杂度相同的情况下, 能够较为准确地提取出图像边缘。通过具体对比分析, 在保证真实边缘被检测出的情况下, 噪声检出率降低了90%。

完整MR图像的边缘检测效果如图7所示, 其中图7(a)为原图, 图7(b)为传统Canny算法检测的图像, 图7(c)为通过 0.090.3501矩阵增强对比度后进行改进Canny算法检测后的结果。

图7 完整MR图像边缘检测图像Fig.7 Complete MR image edge detection

从图7中可以看出, 对比度增强后再运用基于均值滤波改进的Canny算法可以较为完整地保留图像边缘的信息, 同时有效地过滤掉了图中不需要的噪声, 减少了90%假边缘的检出。

3.2 与已有算法比较

2014年, 王贵彬[11]提出了基于Canny算子与形态学融合的边缘检测算法, 将本文算法与王贵彬算法进行比较, 结果如图8所示, 其中图8(a)为本文算法, 图8(b)为基于Canny算子与形态学融合的算法。

图8 与其他算法结果对比图Fig.8 Comparison of proposed algorithm with other algorithm

通过对比可以看出, 通过基于Canny算子与形态学融合的算法处理过后的MR图像其边缘信息较少, 假边缘被抑制的同时, 真边缘也被一同抑制, 而本文算法在抑制假边缘的同时较多得保留了真边缘信息。

4 结束语

首先根据MR图像存在的灰度阶变化不明显的特点, 采用增强图像对比度和图像锐化对MR图像进行预处理。然后, 针对Canny算法中一维高斯滤波器存在的对噪声敏感的缺点, 提出了基于均值滤波器的Canny算法。试验结果表明, 先把原图像进行对比度增强, 然后运用基于均值滤波改进的Canny算法进行边缘检测是一种可行的算法。而且相比于传统算法, 改进后的算法在真实边缘检出率、算法复杂度相同的情况下, 假边缘的检出率降低90%。同时, 本文所改进的算法不仅可以运用于MR图像边缘的检测, 而且对于CT、X光图像等与MRI所成图像类似的医学图像, 通过恰当的参数设置, 也可以达到同样的检测效果。

The authors have declared that no competing interests exist.

参考文献
[1] 刘微. 基于边缘检测的移动机器人视觉导航方法研究[D]. 沈阳: 沈阳理工大学信息科学与工程学院, 2010.
Liu Wei. Research on the method of mobile robot visual navigation based on edge detection[D]. Shenyang: School of Information Science and Engineering, Shenyang Ligong University, 2010. [本文引用:1]
[2] 刘晨晨, 桑恩方. 基于数学形态学的水声图像处理[J]. 吉林大学学报: 信息科学版, 2003, 21(增刊): 52-57.
Liu Chen-chen, Sang En-fang. Underwater aconstic image processing based on mathematical morphology[J]. Journal of Jilin University(Information Science Edition), 2003, 21(Sup. ): 52-57. [本文引用:1]
[3] 余金栋, 张宪民. 用于线纹显微图像的边缘检测算法[J]. 光学精密工程, 2015, 23(1): 271-281.
Yu Jin-dong, Zhang Xian-min. Edge detection algorithm for lines on microscopic image[J]. Optics and Precision Engineering, 2015, 23(1): 271-281. [本文引用:1]
[4] 曾理, 郭海燕, 马睿. 基于小波定位及Facet模型的三维工业CT图像边缘检测[J]. 光学精密工程, 2010, 18(2): 443-450.
Zeng Li, Guo Hai-yan, Ma Rui. Three dimensional edge detection based on wavelet locating and facet model[J]. Optics and Precision Engineering, 2010, 18(2): 443-450. [本文引用:1]
[5] 王冰. 用Roberts 算子进行边缘处理[J]. 甘肃科技, 2008, 24(10): 18-20.
Wang Bing. Use Rroberts operator for edge processing[J]. Gansu Science and Technology, 2008, 24(10): 18-20. [本文引用:1]
[6] 樊娜, 李晋惠. 图像边缘检测的Prewitt 算子的改进算法[J]. 西安工业学院学报, 2005, 25(1): 37-39, 44.
Fan Na, Li Jin-hui. Improvement of Prewitt operator on dege detection of image[J]. Jouranl of Xi'an Institute of Technology, 2005, 25(1): 37-39, 44. [本文引用:1]
[7] 郑英娟. 基于八方向Sobel 算子的边缘检测算法研究[D]. 石家庄: 河北师范大学数学与信息科学学院, 2014.
Zheng Ying-juan. A study on algorithm of edge detection based on the eight directions sobel operator[D]. Shijiazhuang: College of Mathematics and Information Science, Hebei Normal University, 2014. [本文引用:1]
[8] 张震, 马驷良, 张忠波, . 一种改进的基于Canny 算子的图像边缘提取算法[J]. 吉林大学学报: 理学版, 2007, 45(2): 244-248.
Zhang Zhen, Ma Si-liang, Zhang Zhong-bo, et al. Improved image edge extractio algorithm based on Canny operator[J]. Journal of Jilin University (Science Edition), 2007, 45(2): 244-248. [本文引用:1]
[9] 李旭, 王正勇, 吴晓红, . 一种改进非极大值抑制的Canny 边缘检测算法[J]. 成都信息工程学院学报, 2011, 26(5): 564-569.
Li Xu, Wang Zheng-yong, Wu Xiao-hong, et al. An Canny edge detection algorithm base on improved non-maxmum suppression[J]. Journal of Chengdu University of Information Technology, 2011, 26(5): 564-569. [本文引用:1]
[10] 李俊山, 马颖, 赵方舟, . 改进的Canny 图像边缘检测算法[J]. 光子学报, 2011, 40(增刊1): 50-54.
Li Jun-shan, Ma Ying, Zhao Fang-zhou, et al. A novel arithmetic of image edge detection of Canny operator[J]. Acta Photonica Sinica, 2011, 40(Sup. 1): 50-54. [本文引用:1]
[11] 王贵彬. 基于Canny 算子与形态学融合的边缘检测算法[D]. 哈尔滨: 哈尔滨理工大学应用科学学院, 2014.
Wang Gui-bin. Fusion edge detection method based on Canny operator and morphology[D]. Harbin: School of Applied Science, Harbin University of Science and Technology, 2014. [本文引用:2]
[12] 吴传富, 朱同波. 基于MATLAB 的几种图像增强算法[J]. 机电技术, 2012(5): 37-39.
Wu Chuan-fu, Zhu Tong-bo. Several kinds of image enhancement algorithm based on MATLAB[J]. Mechanical & Electrical Technology, 2012(5): 37-39. [本文引用:1]
[13] 王科俊, 熊新炎, 任桢. 高效均值滤波算法[J]. 计算机应用研究, 2010, 27(2): 434-438.
Wang Ke-jun, Xiong Xin-yan, Ren Zhen. Highly efficient mean filtering algorithm[J]. Application Recearch of Computers, 2010, 27(2): 434-438. [本文引用:1]