基于dsp进行超声图像平滑处理程序的优化方法

文档序号:8396383阅读:582来源:国知局
基于dsp进行超声图像平滑处理程序的优化方法
【技术领域】
[0001] 本发明属于超声图像处理技术领域。
【背景技术】
[0002] 数字图像处理技术作为利用计算机对图像进行处理,提高图像质量或者提取有效 信息的一种技术和方法,逐渐成为一个新兴的学科,研究范围设及到图像变换、图像增强和 复原、图像编码压缩、图像描述、图像分类和图像分割等的数字图像处理技术由于自身处理 方法灵活、便于传输等优点被应用于通讯、医疗和宇宙探索遥感等诸多领域。
[0003] 超声的声波频率在20000赫兹W上,超出人类能听到的声音频率上限,在医学上 用超声检测不仅价格低廉而且对人体没有伤害,最重要的是它利用超声的物理特性和人体 组织器官的声学差异来描述组织器官的情况,可W通过图像形式来显示,帮助人们尽早发 现和治疗疾病,对人类健康做出了重大的贡献。利用超声成像的技术在临床医学中使用广 泛,已经成为现代临床医学诊断中不可缺少的方法,超声图像的质量影响着医生对病人体 内情况的判断。而在超声图像采集和传输过程中会受到电磁波干扰等造成的外界干扰和摄 像头热噪声等造成的内部干扰。该些干扰使图像质量下降、变得模糊、特征被淹没,噪声干 扰医生对病人体内组织器官的判断,对于图像分析十分不利。随着超声技术的发展,其在医 学上的应用越来越多的被人们接受和采用,同时,人们对超声设备的要求也就更高,对超声 显示的图像质量要求也随之增高,所W超声图像的处理技术越来越被更多人重视,越来越 多的人参与到该项研究之中。
[0004] 可W消去图像噪声提高图像质量的图像平滑成为了图像增强技术中的重要研究 对象,平滑模块出现在了很多有关图像处理的软件中。针对不同图像的需求,有多种常见的 平滑处理算法,好的图像处理算法不仅能去除噪声还能较好的保留图像边缘使边缘线条明 晰并且细节分明。不断有人提出好的平滑处理算法,但是针对不同的图像还没有通用的最 好的算法,不同图像偏重点不同,适用的方法自然不同,所W在处理超声图像时要选择合适 的算法。
[0005] 图像处理最早被应用在20世纪20年代,20世纪50年代的电子计算机已经发展 到一定水平,随之而来的是数字图像处理的出现,到20世纪60年代初期,形成了数字图像 处理学科,在该一时期,作为数字图像处理重要组成部分的图像平滑研究也形成了。早期的 图像处理是基于人类视觉的,W改善图像的视觉效果为目的。1964年,美国喷气推进实验 室(JPL)使用图像处理技术处理了航天探测器发回的月球照片,首次实际应用图像处理技 术获得成功,随后他们又用更复杂的方法处理了几万张航天探测器发回的照片,推动了数 字图像处理学科的诞生。在二十世纪八十年代之前,数字信号处理还只是在理论阶段,由于 技术限制很难应用到实际中,直到二十世纪走十年代末八十年代初,Affl公司发布了第一个 单片可编程DSP,理论才逐渐被应用到低成本的实践中。1980年,为解决早期图像平滑技术 因假设图像为平稳随机场而对图像进行线性滤波导致图像边缘模糊的缺陷,J.S.Lee首先 提出了图像的自适应平滑算法,随后出现了多种改进的图像自适应平滑算法。现有图像平 滑处理存在速度慢且效率低的问题。

【发明内容】

[0006] 本发明的目的是为了解决现有超声图像平滑处理速度慢且效率低的的问题,本发 明提供一种基于DSP进行超声图像平滑处理程序的优化方法。
[0007] 本发明的基于DSP进行超声图像平滑处理程序的优化方法,
[0008] 所述超声图像平滑处理程序是基于DSP实现的,所述优化方法包括:
[0009] 步骤一;根据需求设计超声图像平滑处理的算法,根据设计的算法利用C语言编 写超声图像平滑处理程序;
[0010] 步骤二:找出编写的超声图像平滑处理程序中效率低的部分,采用中值滤波法对 效率低的部分进行优化,获得优化后的部分,判断优化后的部分是否满足要求,若是,则结 束,若否,则转入步骤S;
[0011] 步骤对步骤二中优化后的部分编写线性汇编,使线性汇编后的满足要求。
[0012] 所述步骤二中,找出编写的超声图像平滑处理程序中效率低的部分的方法为:
[0013] 使用C6000编译器的profile命令来找出编写的超声图像平滑处理程序中效率低 的部分。
[0014] 所述步骤二中,采用中值滤波法对效率低的部分进行优化的方法包括:
[0015] 所述方法采用两层循环实现:
[0016] 步骤二一;选取3*3窗口,使每行3个元素按降序排列,窗口向下滑动,则窗口中 每一时刻的3行元素都是降序排列,第一列都是每行的大数,第二列是中间数,第S列是小 数;
[0017] 步骤二二;找到第一列中最小值h_min,第二列中的中间值m_mid,第S列的最大 值l_max;
[001引步骤二;;找出h_min、m_mid和l_max中的中间值,找出的中间值就是窗口中元素 的中间值。
[0019] 所述两层循环中的内层循环的过程包括:
[0020] 步骤二一;利用S个指针分别指向窗口所在的S列,窗口向下滑动就是指针向下 移动,将每一列的4个数存到一个32位寄存器中,S列分别存于寄存器x0_3210、寄存器 xl_3210 和寄存器x2_3210 ;
[002U 步骤二二;利用内联函数_cmpgtu40和_义口11(140,找出寄存器xl_3210和寄存 器x2_3210中较大的4个数,利用内联函数_1113义1140和内联函数_minu40找到每行最大 的值,存于寄存器x0_3210的最大列x0_3210_b,每行中值存于寄存器xl_3210的中值列 xl_3210_c,每行最小值存于寄存器x2_3210的最小列x2_3210_c;
[002引步骤二S;前一次循环中第一列的高位化yte存于寄存器max0_3210的低16位, 最大列x0_3210_b的低位化yte存入寄存器max0_3210的高16位,前一次循环中第一列 的高位化yte存入寄存器maxl_3210的低8位,最大列x0_3210_b的低位3byte存入寄存 maxl_3210的高24位,找出窗口移动4个时刻的最大列的最小值maxmin_3210 ;
[0023] 步骤二四;采用与步骤二S相同的方法,找到窗口移动4个时刻的最小列的最大 值minmax_3210 ;
[0024] 步骤二五;采用与步骤二S相同的方法,找到窗口移动4个时刻的中值列的中值 me血
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1