一种图像形态学滤波方法_2

文档序号:9788126阅读:来源:国知局
实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0037] 请参阅图1,其示出了本发明实施例提供的一种图像形态学滤波方法,可以包括以 下步骤:
[0038] S11:获取图像信息及形态学处理信息,其中,图像信息包括原始图像及该原始图 像的图像尺寸,形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素。
[0039] 需要说明的是,本发明实施例中的原始图像可以是三维图像,也可以是二维图像, 而当用于处理三维图像时,本发明实施例提供的一种图像形态学滤波方法较现有技术的有 益效果更为显著。因此,在本发明实施例中,以原始图像为三维图像为例进行详细说明。工 业CT三维图像是由多层相同大小的二维图像叠加而成的,对应的,图像信息可以包括原始 图像及图像尺寸,当然,还可以包括其他数据,如原始图像的图像灰度数据(图像灰度数据 是一连续的内存区域,也是由所有二维图像数据组成)等,均在本发明的保护范围之内。其 中,图像尺寸可以包括原始图像的长、宽、高三个值,"高"就是断层数量,表示该三维图像由 多少幅二维图像组成;"长"和"宽"则表示每幅二维图像的大小。而形态学处理信息可以包 括滤波运算类型和结构元素,当然,也可以包括其他数据,均在本发明的保护范围之内。其 中,滤波运算类型为工作人员根据实际需要进行设定的,可以为现有技术中的任一种滤波 运算类型,而结构元素是形态学中的基础概念,在此不再赘述。
[0040] S12:依据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多 个子图像。
[0041 ]需要说明的是,获取结构元素之后即可获知结构元素对应的结构元素窗口大小, 理论上,可以将整幅三维图像的所有像素点同时放入图像处理器中进行并行滤波运算,一 次性完成形态学滤波处理;但对于实际的工业CT领域海量数据而言,由于图像处理器的内 存毕竟有限。以最为普遍的结构元素窗口大小为3邻域的结构元素为例,每个浮点型像素点 作形态学滤波运算就需要3 X 3 X 3 X 4= 108Bytes的显存空间,那么对于长宽均为1024,高 为100的三维图像来说,仅考虑其所有像素点进行滤波运算时临时变量占据的显存就高达 1024 X 1024 X 100 X 108 ? lOGBytes,远超常见图像处理器的内存,因此必须对原始图像进 行分层,即将三维图像A分解为ai、a 2、……、an等多个较小的对象,即子图像。每个子图像ai 的全部像素点在图像滤波器中同时完成滤波运算。
[0042] S13:利用图像处理器对多个子图像依次进行与滤波运算类型对应的基于结构元 素实现的滤波运算,其中,图像处理器在处理任一子图像时,利用图像处理器的多个处理单 元对该子图像包含的全部像素点同时进行滤波运算。
[0043]需要说明的是,图像处理器中包含多个处理单元,每个处理单元对分配给其的像 素点进行滤波运算,因此,图像处理器中的多个处理单元可以同时运行以实现对于任一子 图像包含的全部像素点的并行运算。
[0044] 本申请公开的上述技术方案中,将原始图像分解成多个子图像,进而利用图像处 理器对每个子图像进行滤波运算,并且图像处理器对任一子图像进行滤波运算时为图像处 理器利用其具有的多个处理单元对该子图像中包含的全部像素点同时进行滤波运算,不同 于现有技术中对像素点的依次计算,从而大大加快了处理速度,保证了处理实时性。
[0045] 另外需要说明的是,形态学滤波方法主要是基于集合理论来研究图像,即把图像 中的物体看成集合,它的基本运算通常定义于两个集合(例如集合X和集合B)之间,其中X是 研究的集合(即图像),B称为"结构元素"。形态学主要有膨胀、腐蚀、开、闭四种基本运算,对 这四种运算进行组合可以衍生出其它运算。对于三维灰度图像空间,形态学的运算对象不 是集合,而是图像函数。设f(x,y,z)是输入图像,b(x,y,z)是结构元素,用结构元素b对输入 图像f进行膨胀运算和腐蚀运算分别定义为:
[0048]其中,Df和Db分别是f和b的定义域。用b对f进行开运算和闭运算的定义为:
[0051] 二者是对偶关系。
[0052] 本发明实施例中处理单元对于像素点进行滤波运算的过程与现有技术中对于像 素点进行滤波运算的方法一致,在此不再赘述。
[0053] 另外需要说明的是,本发明实施例提供的一种图像形态学滤波方法,可以基于任 意编程语言实现,优选的,本申请实施例中基于0penCL(0pen Computing Language,开放运 算语言)实现。而图像处理器可以是如图形处理器GPU、多核CPU (Central Processing Unit,中央处理器)、Cell类型架构、DSP以及FPGA等任何支持OpenCL标准的硬件平台,优选 的,本发明实施例中采用GHJ作为图像处理器。而步骤S11至步骤S13的主语,即与GPU配合实 现本发明实施例提供的一种图像形态学处理方法的设备可以是CPU。本发明实施例中的说 明均以基于OpenCL利用GPU及CPU实现一种图像形态学滤波方法为例进行详细说明。
[0054] 其中,OpenCL是一个异构编程框架,是一种开放的工业标准,使用它可以在CPU、 GPU和其它处理器上进行通用目的的并行编程,它使软件开发者可以更加方便高效地使用 这些异构处理平台。具体来说,OpenCL由两部分组成,一是用于编写内核程序(在OpenCL设 备上运行的代码)的语言,二是定义并控制平台的API ApenCL提供了基于任务和基于数据 两种并行计算机制,极大地扩展了 GPU的应用范围,使之不再局限于图形领域。
[0055]而利用CPU及GPU实现的基于OpenCL的图像形态学滤波方法时,利用图像处理器对 多个子图像依次进行与滤波运算类型对应的基于结构元素实现的滤波运算,可以包括: [0056]设置GPU对应的kernel内核程序的参数,并启动执行该kernel内核程序,以调度 GHJ中的多个处理单元依次对多个子图像进行滤波运算。
[0057]具体来说,设置GPU的kernel内核程序的参数,可以包括滤波运算类型及结构元素 窗口大小等信息,即为利用kernel内核程序进行对于子图像的处理做准备。然后使用 clEnqueueNDRangeKernel执行kernel内核程序,kernel内核程序根据滤波运算类型,调度 所有GHJ的处理单元对任一子图像同步执行滤波运算,CPU控制调度执行完kernel内核程序 后,将处理完成的图像数据由GPU中读回主机内存,进而刷新显示滤波处理完成后的三维图 像。需要说明的是,clEnqueueNDRangeKernel的第三个参数work_dims指定了数据的维度, 可设为1、2或3,分别表示一维、二维、三维。为了 kernel内核程序中GPU处理单元索引方便, 图像数据一般不将该参数设为1,根据原始图像A的实际分解情况,若分解为单层的二维图 像,该参数设为2,若分解为较小的三维图像,则该参数设为3。
[0058]上述实施例提供的一种图像形态学滤波方法中,依据图像尺寸、结构元素及图像 处理器的内存对原始图像进行分解,得到多个子图像,可以包括:
[0059] 依据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多个子 图像;其中,每个子图像的子图像尺寸之和等于图像尺寸,依据任一子图像的子图像尺寸及 结构元素进行计算得到的对该子图像进行滤波运算所需内存小于图像处理器的内存。
[00
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1