一种基于角点检测的医学图像处理方法与流程

文档序号:15965206发布日期:2018-11-16 23:08阅读:222来源:国知局

本发明涉及的是一种图像处理方法,具体地说是一种医学图像处理方法。

背景技术

随着社会经济与各项技术的飞速发展,人们在享受生活质量的显著提高带来的各种便利的同时,也越来越关注自身的健康素质,因为医生通过对医学图像进行观察与分析,将图像分析结果作为病情诊断和治疗疾病的重要依据,因此对医学图像的处理在诊疗环节中至关重要。随着医学技术的不断进步与发展,将计算机技术作为支撑的信息化医学图像处理系统,因为其实用、简便、高效等显著特点广泛应用于临床研究,并且对新兴的远程操纵医疗技术具有重大的价值与深远的意义。在医学图像中,含有大量信息的特征点有很多种,包括像素点、角点等。角点通俗的说,就是转折点或者说图像中线的交点。现实生活中的桌脚、墙角等体现在图像中,就被称为图像的角点。角点通常会从两个方向进行定义:角点是两条线的交点;角点是图像邻域内两个不同方向上的特征点。角点是两个区域的交汇点,因此是图像中信息量最丰富且比较稳定的区域,这些区域具有其独特的特征:角点处于交汇处,对旋转变化、光照变化、仿射变化都不敏感。因此,在计算机技术作为支撑的医学图像处理领域,对角点的研究相当重要。

现有的医学图像处理中,针对角点检测的算法主要有两类:第一种是基于图像边缘处理的检测方法;第二种是针对医学图像灰度对比明显提出来的,基于图像灰度的检测方法。第一种方法过度依赖于对图像进行分割提取,医学图像并不是所有区域都研究价值,对整体进行分割处理往往耗费大量的时间,极大地增加了运算复杂度。由于实用性较低,这里不再进行具体的介绍。后者主要通过各种方式计算图像点的曲率及梯度来检测角点,避免了第一种方式的缺陷,是目前图像处理研究重点。

对医学图像进行各种处理的目的是为了对其进行深层次分析,方便发现图像中的病变区域和病变原因。而被人们所熟知的聚类分析,是研究样品或者数据分类问题的一种统计分析方法,是数据挖掘的重要手段。因此本发明考虑将聚类算法与角点检测相结合,通过聚类分析发现医学图像中的病灶类别。该发明不仅可以有利于对医学图像的研究处理,而且可以和医学图像检索相结合,作为之后的治疗材料。聚类问题的研究已经具有很长时间的历史,并逐渐趋于完善。迄今为止,为了解决聚类问题更好地为各种问题服务,已经提出了上百种聚类算法。根据聚类算法的原理,常见的聚类内容包含多种,常见的有:有序样品聚类法、系统聚类法、图论聚类法、模糊聚类法等。



技术实现要素:

本发明的目的在于提供一种聚类结果真实可靠的基于角点检测的医学图像处理方法。

本发明的目的是这样实现的:

步骤一:选择待处理的医学图像,判断是否是灰度图像,如不是则转换为灰度图像,进行二值化、降噪预处理;

步骤二:对经过预处理的图像提取harris角点,

首先分别计算每个像素点的积分尺度和微分尺度,计算微分掩膜,获得多尺度上图像的像素自相关矩阵,之后设置一个邻域范围,查询该邻域内的极值,并设定一个邻域极值的阈值,查找高于邻域极值阈值的点;

步骤三:在得到经过筛选的点之后,计算尺度归一化算子,检测每个点在某一个尺度响应值是否达到最大,若某一个值达到最大,则证明该点是要找的角点,获得提取的角点矩阵;

步骤四:通过步骤三,获得了图像的角点矩阵之后将获得的点在图像中绘制出来,之后将角点矩阵传给聚类算法,进行聚类处理;

步骤五:首先给出一个k值,将数据集分为k个类,按照kmeans算法进行聚类处理,之后计算每个聚类的距离矢量,满足条件的两个类合为一个,并用相似度矩阵作为判别函数,相似度低于阈值的类,不再进行合并。

本发明针对聚类算法中,选取的数据点质量不高;容易受外界环境以及噪声污染等影响,导致得到的结果信息量较少;参考价值较小等问题,采取先提取图像的角点后进行聚类处理的理论,提出了基于harris角点检测的医学图像数据聚类处理算法。该算法首先计算医学图像中每个像素点的响应值,然后计算x和y方向梯度的乘积,并运用高斯函数进行加权计算之后,计算每个点响应值,为了进一步提高结果的准确性,设置阈值限制以去除不符合要求的角点,即进行邻域非极大值抑制以得到满意的结果。在完成角点检测之后,通过matlab与mysql数据库连接起来,先将角点数据存储到数据库中,为之后的医学图像检索或者图像处理作为后备资源。之后对角点进行k聚类处理,将得到的角点划分出不同的类型并加以显示,为深层次的医学图像分析做基础。从真实地医学图像中得到的角点,其特有灰度不变性和旋转不变性使得信息量丰富而且稳定性较高,具有极高的真实性,所以在此基础上得到的聚类结果真实可靠。

为了解决现有聚类算法,数据集随机生成导致真实性不高、数据点容易受外界影响使得聚类结果准确度低等问题,本发明提了一种基于harris角点检测的医学图像数据聚类算法,该发明中采用gui用户交互界面显示,提高了用户体验。并将matlab与mysql数据库链接,可以被应用于多个图像处理领域。

目前,现存的数据聚类算法,主要是针对随机生成的数据集或者少量已有记录,已有的算法从不同的角度优化性能,以达到提高准确性、提高运算效率的目的,这些算法针对不同的网络模型和具体的实际问题,各有其应用特点与优势。本发明在前人的基础上,针对待处理数据集可用数据较少,导致结果准确性较低等问题,同时采现有的算法精华,将实际的图像数据作为真实的待处理数据,提出了基于角点检测的医学图像数据聚类处理算法,其主要的观点和内容如下:

(1)harris角点检测算法。角点是一个可重复的、可靠的、显著的特征点,特征点的位置通常包含了图像中国像素点的大量信息,所以对图像中的角点检测是获取图像信息的重要方式,harris角点检测提取速度较快,而且具有旋转不变性、灰度变化不变性等显著特点,因此广泛的应用于图像处理领域,而在该算法中,要对梯度乘积进行加权处理,从而计算每个像素点的响应值,但是在进行高斯滤波进行平滑计算时,会导致角点信息丢失或者偏移的现象。为了解决该问题,本发明从多尺度、多分辨率空间出发,引进一个低通滤波器替代之前的高斯滤波,对原始输入图像进行高斯低通滤波和隔行隔列的降采样,从而提高了特征点提取的精度。在提取之后,将提取出的角点存储在矩阵当中,作为聚类处理的初始数据集。本方法设计实现了基于角点检测的数据聚类处理算法,弥补了角点检测中的尺度变化的以及精度较低的缺陷。

在图像处理领域中,怎么对各种算法进行改进,使得具有各种算子和特征的尺度不变性是重要的研究内容。在发明中,将harris角点检测算法与多尺度空间处理相结合,使得算子同时具有旋转不变性、光照不变性、尺度不变性。首先计算图像的角点,harris算法的主要步骤如下:

1)计算待处理图像的i(x,y)在x和y两个方向的梯度ix、iy:计算出图像在x方向的梯度算子的模板,通过ix=filter2(fx,ori_im)计算得到两个方向的滤波,

2)两个方向的梯度可由ix2=ix^2,iy2=iy^2得到,在此基础上计算图像两个方向梯度的乘积ixy=ix*iy;

3)使用高斯函数对和ixy进行高斯加权(取σ=1)生成了7*7的高斯窗口,并通过高斯函数生成矩阵m的元素a、b和c,使用公式计算得到a、b、c

其中w是加权函数,既可以是常数也可以是高斯加权函数。

4)将第3)步生成的m带入下面公式中,从而计算得到每个像素点的harris响应值r,并将小于某一特定阈值t的r值置为零;

r={r:detm-α(tracem)^2<t}

5)在3×3或5×5的邻域内进行非极大值抑制,其中得到的局部最大值点即为图像中的角点。

通常情况下人眼对图像的识别是在很小的一个局部区域内完成的,若在任意方向上移动该区域,区域内的灰度值发生了巨大的变化,那么就认为在该区域内遇到了角点。若在移动时没有什么变化,那么区域内不存在角点;若在某个方向移动时,灰度值发生变化,但是在另一个方向内没有变化,则认为图像是一条直线,角点检测如示意图1所示。

但是harris给出的角点检测计算方法,并不是计算图像中每个像素点的具体的特征值,而是计算一个角点的响应值r来进行预判是否为角点。r和m两个变量的具体实现如下:

r=detm-α*(tracem)^2

公式中的m将特征值包含其中,这样就把所给图像的特征值和角点响应值结合在了一起。经过上述分析可以看出实现该算法的具体思路,在通过函数得出图像中像素点的梯度值之后,通过高斯加权函数计算得出公式r中需要的m的值,从而得出角点的响应值。本发明仿照算法中的二阶矩表示方法,将矩阵换为多尺度矩阵。

式中,g(α1)表示尺度为α1的高斯卷积核,x表示图像的位置。与高斯尺度空间类似,使用l(x)表示经过平滑处理之后的图像,符号表示卷积,lxy(x,αd)表示经过平滑之后进行微分的结果。α1表示积分尺度是决定角点当前尺度的变量;αd表示微分尺度或者局部尺度,是决定角点附近微分值变化的变量。原来的算法只考虑像素点整体的响应值,通过筛选来甄别是否为角点,而改进后的算法,将检测算法与高斯尺度空间相结合,在不同的尺度下进行角点检测大大提高了准确率。在上文曾经说过,稳定性能的算法具有更好的应用前景,改进之前的算法只具有旋转不变性和灰度不变性,改进之后的算法还具有较强的尺度不变性。人们在用肉眼观察东西的时候,不管物体距离远近、放大还是缩小都能被识别出来,并不受观察者尺度的变化影响,我们将这种现象称之为尺度不变性。改进之后的算法,是一种多尺度、多分辨率的方法,待处理图像经过一个多通滤波器进行平滑;之后对预处理后的图像进行抽样,从而得到一系列尺寸变化、分辨率变化的图像,经过这种方式处理的图像,层层进行筛选形成稳定的特征点作为角点。

(2)基于kmeans的聚类算法。本发明的两个算法是递进作用,角点检测算法是为了提取出来图像中信息量大、稳定性较高的点,提取出来的像素点具有非常大的研究意义,而第二部分提出来的改进算法,是将上一步的角点作为下一步的数据集,既保证了数据的来源,也具有真实性。由于医学图像的数据集相较于其他数据集来说数据量较少,因此本发明采用kmeans算法对其进行聚类处理,该算法作为经典划分聚类方法,划分的基本思想大概如下:给定一个数据集,分裂法构造k个分组,每一个分组代表一个分类,而且每个分组至少包括一个数据记录。每一个数据记录仅属于一个分组,经过反复迭代使得算法结果逐步改进。该算法思想简单,运算速度较快,但是具有一些不可避免的缺点,比如:不适用于数据量较大时;只有在簇的平均值被定义时才能使用;要求事先给出k的值,而且对初始值比较敏感;不适用于非凸面的簇,对噪声影响较大等。

针对算法的一些问题,本发明给出了一些改进措施,能够提高算法的精度。由于必须要给出一个k值作为初始分类数,但是在分类之前并不能很好的判断k值的范围,因此开始先给出一个合适的数值给k,在之后的操作中,对算法进行精度的提高。在给出k值之后,经过一次运行就可以得到一次聚类中心,对于得到的聚类中心,根据得到的聚类的距离矢量进行判断,给定一个阈值,距离低于这个阈值的两个或者多个类进行合并,这样经过一次合并之后,聚类中心数和聚类数目减少了,最终得到合适的聚类数。为了防止分类一直合并下去,本发明设置了一个评判函数,直至评判函数收敛。该评判函数本发明使用的是角点之间的相似度矩阵,定义相似度如下:

其中||x||=(xty)1/2||y||=(yty)1/2,x(x,y)表示的是最近聚类中心相似程度,数值越大表示越相似,两个矢量之间的归一化系数最大的两个聚类进行合并,经过几次之后,低于一定范围的聚类不再进行合并。

本发明的技术效果为:

本发明方法是在对数据集进行聚类处理时通过对角点检测作为医学图像的聚类数据集,为了能够获得高质量的角点,对现有的harris算法进行改进。我们考虑到,现有的算法是计算图像中每个像素点的响应值,作为判别标准。假设检测到的点是图像边缘线上的点,由于边缘点也具有角点的性质,灰度值会在两个方向上急剧变化,使得检测的响应值会很高,但是边缘点所含信息量较少,而且信息不准确,如果将边缘点或者离群点作为我们得到的像素点,会导致之后的聚类效果不好。而且平滑滤波因为只进行一次筛选,极有可能会导致含有大量信息的角点丢失,造成精度下降。因此在改进算法时,我们从这个方面出发,将检测与多尺度空间相结合,第一部分先提取待处理医学图像的特征点;第二部分,对上一步检测出来的特征点在每个尺度进行检测,经过预处理检测角点的图像,经过一个低通滤波器进行平滑;之后对这个平滑图像进行抽样,抽样的比例可以根据实际情况自己设定,在本实验中,我们将其在每个方向上定为1/2,这样会得到一系列尺度逐渐缩小、分辨率逐渐降低的图像,之后检测每个特征点在某一个尺度上,响应值是否达到最大,并给出一个邻域值radius,查找该邻域范围内的极大值,将其作为目标角点进行提取并绘制出来。

评价角点检测算法的性能优劣主要从五个方面来考虑:准确性,即使细小的点,也能够别检测出来;鲁棒性,对噪声具有较强的抗干扰性;稳定性,对同一个场景的多张图片,每一个角点的位置都不应该改变;实时性,计算速度较快、计算量较少、复杂度较小;定位性,检测到的角点应该尽可能地接近它们在图像中的真实位置。为了验证改进之后的算法,我们用图像变化之后的角点与对原始图像检测出来的角点对比,得到的比值越大,证明重复率越高,证明算法的性能越好。具体的结果显示,将在下文的截图中加以显示。

在得到图像的角点之后,我们对提取出来的点进行聚类处理。按照本文提出的改进思想,首先给出一个合适的聚类值,之后经过重复迭代的过程,不断地计算距离矢量,逐渐的缩小聚类中心和聚类数目,得到最终的聚类结果。同样的为了验证算法的性能,我们用聚类效果图加以显示,并计算分类之后的各个类或者簇之间的相似度矩阵,具体的结果,将在下文的截图中加以显示。总的来说,通过计算结果及性能的比较,可以看出本发明提出的基于角点检测的医学图像数据聚类算法,无论是效果还是处理效率,亦或是在实际中的应用方面,均表现出了优越性与极大的适用价值。

附图说明

图1a-图1c为角点检测示意图;

图2为本发明的流程框图;

图3为本发明涉及的gui交互界面图示;

图4为本发明涉及的脑部图像角点检测算法的图示;

图5为本发明涉及到的改进算法与初始算法稳定性比较折线图。

具体实施方式

下面举例对本发明做更详细的描述。

一种基于角点检测的医学图像数据聚类处理算法,通过以下步骤实现,并通过图2的流程框图直观的表示出来:

步骤一:选择待处理的医学图像,判断是否是灰度图像,转换为灰度图像之后,对其进行二值化、降噪等预处理;

步骤二:经过预处理的图像,进入到提取harris角点阶段。首先分别计算每个像素点的积分尺度和微分尺度,计算其微分掩膜,获得多尺度上图像的像素自相关矩阵,之后设置一个邻域范围,查询该邻域内的极值。并设定一个邻域极值的阈值,查找高于邻域极值阈值的点;

步骤三:在得到经过筛选的点之后,计算尺度归一化算子,检测每个点在某一个尺度响应值是否达到最大,若某一个值达到最大,则证明该点是我们要找的角点,获得提取的角点矩阵;

步骤四:通过步骤3,我们获得了图像的角点矩阵,之后将获得的点在图像中绘制出来。完成之后,将角点矩阵传给聚类算法,进行聚类处理;

步骤五:首先给出一个合适的k值,将数据集分为k个类,按照kmeans算法进行聚类处理,之后计算每个聚类的距离矢量,满足条件的两个类合为一个,并用相似度矩阵作为判别函数,相似度低于某一个阈值的类,不再进行合并,算法结束。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1