本发明涉及心电图扫描图像的数字化处理技术,尤其是针对心电图扫描图像的倾斜度校正方法。
背景技术:
在临床诊断过程中,医院一直依赖心电图作为监测病人心脏电活动的仪器。由于纸张易破碎且热敏纸字迹不稳定、易消退,多数纸质心电图会遭到了不同程度的破坏。而这些纸质心电图是一笔宝贵的财富,可以建立丰富的病例数据库、有助于学者进行科研分析、增加医生临床诊断经验以及支持在线远程诊断等。因此纸质心电图数字化信息的提取成为一个亟待解决的问题。
纸质心电图是由纵横交错的背景坐标网格、打印在网格上的心电波形曲线、导联字符以及定标电压组成。纸质心电图数字化信息提取,不是单纯指将纸质心电图通过扫描仪等设备转换成数字图片保存,还包括通过一系列的智能处理技术将纸面上的波形数据提取并保存的数字化过程。使用扫描仪将纸质心电图转换为数字图像,是完成纸质心电图数字化过程的第一步。但是由于人工操作或者扫描设备等原因,得到的扫描心电图像通常存在不同程度的倾斜,这对于后续的数字化过程,特别是心电图信号定标和量化过程不利。因此有必要在心电图信号数字化实现过程中,检测心电图扫描图像的倾斜角度,并做相应校正。
目前针对扫描图像的倾斜角度检测的方法有:基于投影的方法、基于变换的方法(如常用hough变换或rodon变换)和基于特征的方法。基于投影的方法简单易行,处理速度快,但对于密布网格线的心电图图像效果不佳。基于变换的方法通过检测直线段来判断倾斜角,但无论是hough变换还是rodon变换,所需的计算量较大,如果输入的扫描图像分辨率较高,将导致处理速度不能满足实时性要求。相对于前两种方法,基于特征的方法,可以快速准确地检测扫描图像的倾斜角。
技术实现要素:
本发明的目的是提供一种针对心电图扫描图像的基于特征的倾斜度校正方法,本发明能够快速准确检测心电图扫描图像的倾斜角。技术方案如下:
一种心电图扫描图像倾斜度校正方法,包括下列步骤:
步骤1:将输入彩色扫描ecg图像进行双边滤波处理,处理结果用f表示;
步骤2:将f从rgb颜色空间转换到hsv颜色空间,用fh、fs和fv分别表示色调、饱和度和强度分量图;
步骤3:为了加大背景与网格点的差别,将饱和度分量图fs进行增强处理,包括对比度拉伸和归一化处理,处理结果用fse表示;
步骤4:使用otsu法计算fse的全局阈值th1,构造二值图bw1,其中bw1中取值为1对应于fse中取值大于th1的点,其它点取值为0;
步骤5:使用半径为2的碟状算子,对bw1进行形态学膨胀处理,处理结果二值图用bw2表示;
步骤6:使用强度分量fv,计算bw2中取值为1的各点的梯度值和方向,分别用grdi和diri表示,其中下标i表示序号;
步骤7:计算梯度值的最大值,用grdmax表示,设定一个小于0.5的α值,只选取满足条件grdi>α×grdmax的点对应的梯度方向值来构造梯度方向直方图hog,;
步骤8:用hstj(j=0,1,...,180)表示直方图数值,选取其中的局部极值点,并用{hstm}表示局部极值点序列;
步骤9:从局部极值点序列{hstm}中选取接近0°的第一主方向角θ1和接近90°的第二主方向角θ2;
步骤10:计算心电图扫描图像的倾斜角φ=0.5×(|θ1-0|+|θ2-90|);
步骤11:根据倾斜角φ旋转图像,得到校正后的图像。
计算机仿真结果表明,使用本发明所提方法能够快速准确检测心电图扫描图像的倾斜角,能够满足实时处理的要求。
附图说明
图1是心电图扫描图像构成示意图
图2所提方法流程图
图3所提方法处理结果示意图,(a)为原图(b)为处理结果图
具体实施方式
目前国内大多数医院打印心电图所用的纸张通常是热敏纸。该纸张使用纵横交错的红色网格来定标,心电波形则以黑色波形打印在纸上。扫描彩色心电图图像中主要包括三类颜色点(如图1所示):(1)黑色点,包括心电图波形和标注字符;(2)红色点,主要是背景网格点,(3)白色背景点。三类颜色点中,白色背景点数目最多,数目较少的黑色点主要用于提取心电图波形信息,而红色网格点可用于帮助检测图像旋转角度。红色网格点由许多相互垂直的水平线和垂直线构成,其中水平线的旋转角与扫描图像的旋转角基本一致。本发明所提方法利用水平网格线的梯度方向确定心电图扫描图像的倾斜角。
根据心电图图像背景分布着密集、规则的红色网格的特点,本发明提出一种心电图扫描图像倾斜度校正方法。首先,使用双边滤波对心电图扫描图像做平滑处理,将转换到hsv颜色空间;然后对s分量进行增强处理,并提取网格区域;再使用v分量计算网格区域内各点梯度的方向值,构造网格点区域对应的梯度方向直方图(hog);最后,根据得到的hog计算倾斜度角,完成心电图扫描图像的倾斜度校正。图2所示为本发明所提方法的框图。具体流程如下;
1、双边滤波
纸质心电图图像在打印、存储、扫描等过程中都有可能引入噪声,这些噪声对于倾斜度校正和后续的数字化过程都会造成干扰,因此本发明选用双边滤波技术,对输入的彩色心电图扫描图像进行滤波处理,处理结果用f表示。
2、颜色通道分离
为了提取位于背景中的红色网格点,将f由rgb空间转换到hsv空间,分别用fh、fs和fv表示色调、饱和度和强度三个分量图像。
3、网格点提取
在心电图扫描图像中,黑色或者深灰色的心电图波形,以及白色的背景区域,两类区域像素点的饱和度值都较小,相比较而言,红色网格线各点的饱和度数值较高。因此,可以使用饱和度值来区分网格点和背景点。具体的做法是:
算法1:网格点提取算法
第一步:对fs进行对比度拉伸和归一化处理,目的是加大背景与网格点的差别,处理结果用fse表示。
第二步:使用otsu法计算fse的全局阈值th1,构造二值图bw1,其中bw1中取值为1对应于fse中取值大于th1的点,其它点取值为0。
第三步:使用半径为2的碟状算子,对bw1进行形态学膨胀处理,处理结果二值图用bw2表示。
4、主梯度方向检测
使用强度分量fv,计算bw2中取值为1的点的梯度方向值(0°到180°之间),构造梯度方向直方图,用hog表示。由于网格线是由相互垂直的线构成,因此对于不存在倾斜的心电图扫描图像,其hog中0°和90°的取值应明显大于其他角度,形成两个极值,我们称为两个主方向。
当扫描图像发生倾斜时,两个主方向角仍然存在,且与0°和90°的偏差反映了倾斜程度。基于上述分析,本算法使用以下算法确定倾斜度角:
算法2:倾斜角检测算法
第一步:计算bw2中取值为1的各点的梯度数值和方向,分别用grdi和diri表示,其中下标i表示序号。
第二步:计算梯度值的最大值,用grdmax表示,只选取满足条件grdi>α×grdmax的点对应的梯度方向值来计算hog,直方图中角度的取值范围是[0°,180°],间隔为1°,令α=0.2。
第三步:用hstj(j=0,1,...,180)表示直方图数值,下标j表示对应的角度。对于某一个梯度方向值hstk,如果满足hstk的值是{hstk-l,hstk-l+1,...,hstk-1,hstk,hstk+1,...,hstk+l-1,hstk+l}(l=15)中的最大值时,才将hstk判为局部极值点。用{hstm}表示局部极值点序列。
第四步:从局部极值点{hstm}中选取最大值点和次大值点,计算它们对应的角度值,分别用θ1和θ2表示,如果满足85°<|θ1-θ2|<95°,则将θ1和θ2判为主方向角1和主方向角2,并用θ1表示接近0°的主方向角,用θ2表示接近90°的主方向角。
第五步:使用下式计算心电图扫描图像的倾斜角φ(假定顺时针旋转为正方向),
φ=0.5×(|θ1-0|+|θ2-90|)(1)
5、倾斜角校正
根据倾斜角φ,逆时针方向旋转φ,得到倾斜度校正后的图像,并用白色填充旋转后图像中数值没有定义的区域。
采用windows10系统下的matlab2015b作为实验仿真平台。选用专利申请人从项目合作医院得到50幅ecg扫描图像作为测试集。采用本发明提出的方法对测试图像进行处理,得到了良好的处理效果。对于1750×1275大小的图像,采用所提方法的处理速度平均为35ms,处理速度非常迅速。图2给出了部分处理结果图像,其中左侧为输入的倾斜图像,右侧为处理后的图像。由实验结果可见,采用本发明所提方法,可以有效检测并校正ecg扫描图像的倾斜情况,并且能够满足实时处理的要求。