CN105551002B - 一种图像形态学滤波方法 - Google Patents
一种图像形态学滤波方法 Download PDFInfo
- Publication number
- CN105551002B CN105551002B CN201510953779.3A CN201510953779A CN105551002B CN 105551002 B CN105551002 B CN 105551002B CN 201510953779 A CN201510953779 A CN 201510953779A CN 105551002 B CN105551002 B CN 105551002B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- filtering operation
- image
- structural element
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000000877 morphologic effect Effects 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims abstract description 123
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000013500 data storage Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000000354 decomposition reaction Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000002591 computed tomography Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000003628 erosive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000003325 tomography Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000009931 harmful effect Effects 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009659 non-destructive testing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000002601 radiography Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种图像形态学滤波方法,包括:获取图像信息及形态学处理信息,其中,所述图像信息包括原始图像及该原始图像的图像尺寸,所述形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素;依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,其中,所述图像处理器在处理任一子图像时,利用所述图像处理器的多个处理单元对该子图像包含的全部像素点同时进行滤波运算。本申请公开的上述技术方案相对于现有技术来说,大大加快了处理速度,保证了处理实时性。
Description
技术领域
本发明涉及高性能数字辐射成像技术领域,更具体地说,涉及一种图像形态学滤波方法。
背景技术
工业CT是工业用计算机断层成像技术的简称,它能在对被测物无损伤条件下,以计算机二维断层图像或三维立体图像的形式,清晰、准确、直观地展示被测物内部的结构、组成、材质及缺损状况,被誉为当今最佳无损检测和无损评估技术。在CT扫描和计算机图像重建的过程中,不可避免地存在一些噪声点和杂质,这就需要在进一步分析和处理图像之前,采用滤波算法去除图像中存在的噪声,其中,数学形态学的应用能够在图像去噪的同时,保持感兴趣区域的形态特征,是一种工业CT广泛使用的滤波方法。
在工业CT领域,对被测物进行三维重建时,三维图像由若干层二维断层图像叠加而成。CT扫描的断层多达数十层甚至数百层,数据量非常之大,具有海量性,并且进行形态学滤波时往往会进行连续多次的滤波操作,因此对三维图像的形态学滤波进行加速处理、增强图像操作的实时性显得尤其重要。但是,发明人发现,现有技术中对于三维图像的处理往往是将其对应的巨量像素点依次进行滤波操作,进而得到对应的去噪图像,但是,这种方式对三维图像的形态学滤波的处理速度较慢,对应的图像操作的实时性较差。
综上所述,现有技术中对三维图像的形态学滤波存在处理速度较慢及实时性较差的问题。
发明内容
本发明的目的是提供一种图像形态学滤波方法,以解决现有技术中对三维图像的形态学滤波中存在的处理速度较慢及实时性较差的问题。
为了实现上述目的,本发明提供如下技术方案:
一种图像形态学滤波方法,包括:
获取图像信息及形态学处理信息,其中,所述图像信息包括原始图像及该原始图像的图像尺寸,所述形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素;
依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;
利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,其中,所述图像处理器在处理任一子图像时,利用所述图像处理器的多个处理单元对该子图像包含的全部像素点同时进行滤波运算。
优选的,依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像,包括:
依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;其中,每个子图像的子图像尺寸之和等于所述图像尺寸,依据任一子图像的子图像尺寸及所述结构元素进行计算得到的对该子图像进行滤波运算所需内存小于所述图像处理器的内存。
优选的,获取所述图像信息及形态学处理信息之后,还包括:
依据所述图像尺寸、所述结构元素及所述图像处理器的内存对所述结构元素进行分解,得到多个子结构元素;
利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,包括:
步骤A:确定所述多个子结构元素中的任意一个子结构元素为当前结构元素,并确定所述子图像为当前子图像;
步骤B:基于当前结构元素,利用所述图像处理器对所述多个当前子图像依次进行与所述滤波运算类型对应的滤波运算,并确定得到的子图像为当前子图像;
步骤C:判断所述多个子结构元素中是否存在未被用于滤波运算的子结构元素,如果是,则确定未被用于滤波运算的子结构元素中的任意一个子结构元素为当前结构元素,返回执行步骤B;如果否,则停止操作。
优选的,所述图像处理器中的任一处理单元进行与所述滤波运算类型对应的滤波运算,包括:
获取全局工作项ID;
依据所述全局工作项ID访问全局内存的源数据存储空间,并获取所述源数据存储空间中存储的子图像的相应位置上的像素点,将该像素点及所述结构元素的结构元素窗口内的数据复制到工作项私有内存;
利用所述工作项私有内存中存储的像素点及对应结构元素窗口内的数据对该像素点进行与所述滤波运算类型对应的滤波运算,并将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中。
优选的,依据所述全局工作项ID访问全局内存中的源数据存储空间,包括:
依据所述全局工作项ID访问全局内存中的源数据存储空间,其中,所述源数据存储空间为每次获取子图像时创建的,所述源数据存储空间的尺寸为所述结构元素窗口滑动覆盖当前获取的子图像后所得的尺寸。
优选的,将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中,包括:
将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中,其中,所述目标数据存储空间为预先创建的,所述目标数据存储空间的尺寸为所述多个子图像中尺寸最大的子图像对应的尺寸。
优选的,所述图像处理器为图形处理器GPU,利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,包括:
设置所述GPU对应的kernel内核程序的参数,并启动执行该kernel内核程序,以调度所述GPU中的多个处理单元依次对所述多个子图像进行滤波运算。
优选的,该方法基于开放运算语言OpenCL实现。
本发明提供的一种图像形态学滤波方法,包括:获取图像信息及形态学处理信息,其中,所述图像信息包括原始图像及该原始图像的图像尺寸,所述形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素;依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,其中,所述图像处理器在处理任一子图像时,利用所述图像处理器的多个处理单元对该子图像包含的全部像素点同时进行滤波运算。本申请公开的上述技术方案中,将原始图像分解成多个子图像,进而利用图像处理器对每个子图像进行滤波运算,并且图像处理器对任一子图像进行滤波运算时为图像处理器利用其具有的多个处理单元对该子图像中包含的全部像素点同时进行滤波运算,不同于现有技术中对像素点的依次计算,从而大大加快了处理速度,保证了处理实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种图像形态学滤波方法的流程图;
图2为本发明实施例提供的一种图像形态学滤波方法中步骤S13的流程图;
图3为本发明实施例提供的一种图像形态学滤波方法中两层循环的执行示意图;
图4为本发明实施例提供的一种图像形态学滤波方法中GPU与CPU的逻辑关系示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种图像形态学滤波方法,可以包括以下步骤:
S11:获取图像信息及形态学处理信息,其中,图像信息包括原始图像及该原始图像的图像尺寸,形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素。
需要说明的是,本发明实施例中的原始图像可以是三维图像,也可以是二维图像,而当用于处理三维图像时,本发明实施例提供的一种图像形态学滤波方法较现有技术的有益效果更为显著。因此,在本发明实施例中,以原始图像为三维图像为例进行详细说明。工业CT三维图像是由多层相同大小的二维图像叠加而成的,对应的,图像信息可以包括原始图像及图像尺寸,当然,还可以包括其他数据,如原始图像的图像灰度数据(图像灰度数据是一连续的内存区域,也是由所有二维图像数据组成)等,均在本发明的保护范围之内。其中,图像尺寸可以包括原始图像的长、宽、高三个值,“高”就是断层数量,表示该三维图像由多少幅二维图像组成;“长”和“宽”则表示每幅二维图像的大小。而形态学处理信息可以包括滤波运算类型和结构元素,当然,也可以包括其他数据,均在本发明的保护范围之内。其中,滤波运算类型为工作人员根据实际需要进行设定的,可以为现有技术中的任一种滤波运算类型,而结构元素是形态学中的基础概念,在此不再赘述。
S12:依据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多个子图像。
需要说明的是,获取结构元素之后即可获知结构元素对应的结构元素窗口大小,理论上,可以将整幅三维图像的所有像素点同时放入图像处理器中进行并行滤波运算,一次性完成形态学滤波处理;但对于实际的工业CT领域海量数据而言,由于图像处理器的内存毕竟有限。以最为普遍的结构元素窗口大小为3邻域的结构元素为例,每个浮点型像素点作形态学滤波运算就需要3×3×3×4=108Bytes的显存空间,那么对于长宽均为1024,高为100的三维图像来说,仅考虑其所有像素点进行滤波运算时临时变量占据的显存就高达1024×1024×100×108≈10GBytes,远超常见图像处理器的内存,因此必须对原始图像进行分层,即将三维图像A分解为a1、a2、……、an等多个较小的对象,即子图像。每个子图像ai的全部像素点在图像滤波器中同时完成滤波运算。
S13:利用图像处理器对多个子图像依次进行与滤波运算类型对应的基于结构元素实现的滤波运算,其中,图像处理器在处理任一子图像时,利用图像处理器的多个处理单元对该子图像包含的全部像素点同时进行滤波运算。
需要说明的是,图像处理器中包含多个处理单元,每个处理单元对分配给其的像素点进行滤波运算,因此,图像处理器中的多个处理单元可以同时运行以实现对于任一子图像包含的全部像素点的并行运算。
本申请公开的上述技术方案中,将原始图像分解成多个子图像,进而利用图像处理器对每个子图像进行滤波运算,并且图像处理器对任一子图像进行滤波运算时为图像处理器利用其具有的多个处理单元对该子图像中包含的全部像素点同时进行滤波运算,不同于现有技术中对像素点的依次计算,从而大大加快了处理速度,保证了处理实时性。
另外需要说明的是,形态学滤波方法主要是基于集合理论来研究图像,即把图像中的物体看成集合,它的基本运算通常定义于两个集合(例如集合X和集合B)之间,其中X是研究的集合(即图像),B称为“结构元素”。形态学主要有膨胀、腐蚀、开、闭四种基本运算,对这四种运算进行组合可以衍生出其它运算。对于三维灰度图像空间,形态学的运算对象不是集合,而是图像函数。设f(x,y,z)是输入图像,b(x,y,z)是结构元素,用结构元素b对输入图像f进行膨胀运算和腐蚀运算分别定义为:
(f⊙b)(s,t,u)=min{f(s-x,t-y,u-z)+b(x,y,z)|(s-x,t-y,u-z)∈Df,(x,y,z)∈Db}
其中,Df和Db分别是f和b的定义域。用b对f进行开运算和闭运算的定义为:
二者是对偶关系。
本发明实施例中处理单元对于像素点进行滤波运算的过程与现有技术中对于像素点进行滤波运算的方法一致,在此不再赘述。
另外需要说明的是,本发明实施例提供的一种图像形态学滤波方法,可以基于任意编程语言实现,优选的,本申请实施例中基于OpenCL(Open Computing Language,开放运算语言)实现。而图像处理器可以是如图形处理器GPU、多核CPU(Central ProcessingUnit,中央处理器)、Cell类型架构、DSP以及FPGA等任何支持OpenCL标准的硬件平台,优选的,本发明实施例中采用GPU作为图像处理器。而步骤S11至步骤S13的主语,即与GPU配合实现本发明实施例提供的一种图像形态学处理方法的设备可以是CPU。本发明实施例中的说明均以基于OpenCL利用GPU及CPU实现一种图像形态学滤波方法为例进行详细说明。
其中,OpenCL是一个异构编程框架,是一种开放的工业标准,使用它可以在CPU、GPU和其它处理器上进行通用目的的并行编程,它使软件开发者可以更加方便高效地使用这些异构处理平台。具体来说,OpenCL由两部分组成,一是用于编写内核程序(在OpenCL设备上运行的代码)的语言,二是定义并控制平台的API。OpenCL提供了基于任务和基于数据两种并行计算机制,极大地扩展了GPU的应用范围,使之不再局限于图形领域。
而利用CPU及GPU实现的基于OpenCL的图像形态学滤波方法时,利用图像处理器对多个子图像依次进行与滤波运算类型对应的基于结构元素实现的滤波运算,可以包括:
设置GPU对应的kernel内核程序的参数,并启动执行该kernel内核程序,以调度GPU中的多个处理单元依次对多个子图像进行滤波运算。
具体来说,设置GPU的kernel内核程序的参数,可以包括滤波运算类型及结构元素窗口大小等信息,即为利用kernel内核程序进行对于子图像的处理做准备。然后使用clEnqueueNDRangeKernel执行kernel内核程序,kernel内核程序根据滤波运算类型,调度所有GPU的处理单元对任一子图像同步执行滤波运算,CPU控制调度执行完kernel内核程序后,将处理完成的图像数据由GPU中读回主机内存,进而刷新显示滤波处理完成后的三维图像。需要说明的是,clEnqueueNDRangeKernel的第三个参数work_dims指定了数据的维度,可设为1、2或3,分别表示一维、二维、三维。为了kernel内核程序中GPU处理单元索引方便,图像数据一般不将该参数设为1,根据原始图像A的实际分解情况,若分解为单层的二维图像,该参数设为2,若分解为较小的三维图像,则该参数设为3。
上述实施例提供的一种图像形态学滤波方法中,依据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多个子图像,可以包括:
依据图像尺寸、结构元素及图像处理器的内存对原始图像进行分解,得到多个子图像;其中,每个子图像的子图像尺寸之和等于图像尺寸,依据任一子图像的子图像尺寸及结构元素进行计算得到的对该子图像进行滤波运算所需内存小于图像处理器的内存。
需要说明的是,本发明实施例中所提出的图像处理器的内存实际指的为图像处理器中空闲的可在原始图像进行滤波运算时所用的内存;步骤S12中的详细说明可知根据结构元素及图像尺寸计算可得到对于原始图像进行滤波运算时所需内存,而如果所需内存大于图像处理器的内存,说明无法利用图像处理器实现对于原始图像的滤波处理,此时,需要对原始图像进行分解,得到多个子图像。进而在得到每个子图像后,按照步骤S12中说明的方法对每个子图像所需内存进行计算,以保证每个子图像所需内存小于图像处理器的内存。当原始图像或者子图像所需内存等于图像处理器的内存时,可以利用图像处理器对其进行处理,但是最好将其分解至所需内存小于图像处理器的子图像,以避免图像处理器中存储过多数据对其运算速度的影响。
另外,对于原始图像的分解可以是平均分解,即每个子图像的尺寸相同,也可以每个子图像的尺寸不同,此时,只需尺寸最大的子图像在进行滤波运算时所需内存小于图像处理器内存即可。即分解原始图像的原则可以为:在正常显示要求前提下,图像处理器中的可用内存大于其进行单次滤波运算所需空间。
上述实施例提供的一种图像形态学滤波方法中,获取图像信息及形态学处理信息之后,还可以包括:
依据图像尺寸、结构元素及图像处理器的内存对结构元素进行分解,得到多个子结构元素。
需要说明的是,由步骤S12中的说明可以看出,结构元素窗口增大将导致其占用空间呈三次方增长,因此对于结构元素较大的滤波运算,需要将其分解为多次结构元素较小的操作,即将其分解为多个子结构元素。其中,结构元素分解规律是形态学中重要的规律,以腐蚀运算为例,若那么f⊙b=f⊙c1⊙c2,意思是当用结构元素b对f进行腐蚀时,结构元素较大,通过结构元素的分解可以先用c1对f进行腐蚀再用c2对f进行腐蚀,从而在得到同样的结果的同时,达到时间和空间的平衡。而对于结构元素的分解,简单来说,基本原则是在满足正常显示要求前提下,图像处理器中的可用内存大于其进行单次滤波运算所需空间,与对原始图像的分解的原则一致,因此,具体说明可以参见上述对于原始图像的分解中。另外,对于原始图像和结构元素的分解方式并不具有唯一性,任何符合上述分解原则的分解方式均在本发明的保护范围之内,在此不再赘述。
对应的,利用图像处理器对多个子图像依次进行与滤波运算类型对应的基于结构元素实现的滤波运算,可以包括:
S131:确定多个子结构元素中的任意一个子结构元素为当前结构元素,并确定子图像为当前子图像。
S132:基于当前结构元素,利用图像处理器对多个当前子图像依次进行与滤波运算类型对应的滤波运算,并确定得到的子图像为当前子图像。
在执行完步骤S132后,可以将运算所得结果读回主机内存,存在主机内存中存放原始图像的存储空间中,组成一幅完整的滤波处理后的三维图像,以使得此次运算所得结果可以直接作为利用下一个子结构元素对其进行滤波运算时所需的处理对象。
S133:判断多个子结构元素中是否存在未被用于滤波运算的子结构元素,如果是,则执行步骤S134,如果否,则执行步骤S135。
S134:确定未被用于滤波运算的子结构元素中的任意一个子结构元素为当前结构元素,返回执行步骤S132。
S135:停止操作。
由此,对于结构元素的分解及对于原始图像的分解形成两层循环,两层循环的执行示意图如图3所示。其中,对于原始图像分解成的子图像的循环可以称为内循环,对于结构元素分解成的子结构元素的循环可以称为外循环。从而通过两层循环,在达到时间和空间平衡的前提下,尽可能的加快对于图像的处理速度。
上述实施例提供的一种图像形态学滤波方法中,图像处理器中的任一处理单元进行与滤波运算类型对应的滤波运算,可以包括:
获取全局工作项ID(identity,身份证明);
依据全局工作项ID访问全局内存的源数据存储空间,并获取源数据存储空间中存储的子图像的相应位置上的像素点,将该像素点及结构元素的结构元素窗口内的数据复制到工作项私有内存;
利用工作项私有内存中存储的像素点及对应结构元素窗口内的数据对该像素点进行与滤波运算类型对应的滤波运算,并将运算所得结果返回至全局内存中与全局工作项ID对应的目标数据存储空间中。
需要说明的是,GPU的处理单元实现滤波运算为整个形态学滤波系统加速的核心。kernel内核程序使用工作项函数get_global_id获取该处理单元在各维度上的全局工作项ID,以使得处理单元获取全局工作项ID后根据全局工作项ID同步访问GPU全局内存中源数据存储空间的相应位置上的像素点,将该像素点及结构元素窗口内的数据复制到工作项私有内存,需要说明的是,每个处理单元均具有对应的工作项私有内存。以分解后的子图像为单层L×W的二维图像、结构元素的窗口大小为3邻域为例,若全局工作项ID两个维度的值分别是i、j,那么对应的源数据存储空间中像素点的地址偏移量为L×W+i×W+j,结构元素窗口内的数据地址偏移量为l×L×W+(m+i-1)×W+n+j-1,l、m、n的定义域为[0,2],运算所得结果对应点的地址偏移量为i×W+j,同理可扩展至其它各种分解情况。从而,可以根据上述地址偏移量定位到所需的地址。
进而处理单元判断传入的滤波运算类型,以对获取的像素点进行对应的形态学滤波运算。同理,运算所得结果也是根据全局工作项ID存放在目标数据存储空间的对应位置中。本发明实施例中,对于任一子图像的滤波运算由GPU的各处理单元同时运行完成,从而大大增加了处理速度。
上述实施例提供的一种图像形态学滤波方法中,依据全局工作项ID访问全局内存中的源数据存储空间,可以包括:
依据全局工作项ID访问全局内存中的源数据存储空间,其中,源数据存储空间为每次获取子图像时创建的,源数据存储空间的尺寸为结构元素窗口滑动覆盖当前获取的子图像后所得的尺寸。
将运算所得结果返回至全局内存中与全局工作项ID对应的目标数据存储空间中,可以包括:
将运算所得结果返回至全局内存中与全局工作项ID对应的目标数据存储空间中,其中,目标数据存储空间为预先创建的,目标数据存储空间的尺寸为多个子图像中尺寸最大的子图像对应的尺寸。
上述步骤可以是使用函数clCreateBuffer来实现的。如图4所示,为GPU与CPU的逻辑关系示意图,其中,工作项对应工作项私有内存,每个处理单元均具有对应的工作项私有内存,假设处理单元为n个。具体来说,CPU在GPU全局内存中为待处理的子图像(即源数据)和运算所得结果(即目标数据)创建对应的存储空间,源数据存储空间在每次内层循环中创建,即在创建源数据存储空间的同时将子图像由主机内存复制到GPU全局内存的源数据存储空间中,而源数据存储空间的大小为结构元素窗口滑动覆盖ai(即当前获取的子图像)后的大小,其性质CL_MEM_COPY_HOST_PTR(创建源数据存储空间的同时将源数据从主机内存复制到此处)。而目标数据存储空间则是预先进行一次创建即可,因为在步骤S12中已将整幅原始图像A分解为多幅子图像ai,所以为目标数据创建的目标数据存储空间只需要单幅子图像ai大小,其性质为CL_MEM_READ_WRITE(可读写)。如果每个子图像的尺寸大小一致,则直接将目标数据存储空间设置为与每个子图像大小一致即可,而如果每个子图像的尺寸大小不尽一致,则需要将尺寸最大的子图像对应的尺寸设置为目标数据存储空间所需的尺寸,以避免无法满足全部子图像的尺寸的情况发生。其中,尺寸最大的子图像是指不小于其他子图像的尺寸的子图像,由此,当具有多个同样尺寸的子图像,且该多个同样尺寸的子图像大于其他子图像时,直接将目标数据存储空间的尺寸设置为与该多个同样尺寸的子图像具有的尺寸一致即可。此时,对于上述实施例中kernel内核程序的参数的设置,也可以包括目标数据存储空间及源数据存储空间的地址等。
在源数据存储空间存储的子图像被使用完成,目标数据存储空间存储的运算结果被CPU调取后,可以将其进行销毁,以避免对于下一次的滤波运算造成不良影响。并且,在完成对于全部子图像的滤波运算后,可以刷新显示滤波处理完成后的三维图像。
简单来说,由CPU负责原始图像及结构元素的分解、循环控制、启动kernel内核程序及存取中间临时数据等串行过程,而GPU负责实现并行滤波运算,从而通过CPU和GPU协作的方式达到本发明所能达到的以下有益效果:合理发挥GPU内大量处理单元的运算能力,实现滤波处理的并行加速功能,同时不需要降低计算复杂度,更不会影响滤波效果;基于OpenCL,开发简捷,核心程序改动很小,具有平台无关性;针对较大的三维图像,提出了分解原始图像及结构元素的方法,以CPU和GPU串、并行协同工作的方式实现两层循环结构,达到时间和空间的平衡;并且,该方法的加速效果主要由GPU的性能决定,可以随着技术发展通过更换GPU实现性能的提升,无需其他改动,升级成本低,代价小。
另外,为检验加速效果,以1024×1024×100的三维图像分别进行OpenCL加速前后的测试,硬件平台为CPU E5-2603(1.8G,四核)、内存8G、GPU Tesla K20c(2496个流处理器,显存5G),实验证明,加速前一次(即现有技术)3领域膨胀处理所耗时间为12567ms,加速后(即本发明实施例提供的一种图像形态学处理方法)3领域膨胀处理所耗时间为1965ms,加速比为6.4。可见,本发明实施例提供的一种图像形态学处理方法具有较快的处理速度。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种图像形态学滤波方法,其特征在于,包括:
获取图像信息及形态学处理信息,其中,所述图像信息包括原始图像及该原始图像的图像尺寸,所述形态学处理信息包括滤波运算类型及与该滤波运算类型对应的结构元素;
依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;
利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,其中,所述图像处理器在处理任一子图像时,利用所述图像处理器的多个处理单元对该子图像包含的全部像素点同时进行滤波运算;
获取所述图像信息及形态学处理信息之后,还包括:
依据所述图像尺寸、所述结构元素及所述图像处理器的内存对所述结构元素进行分解,得到多个子结构元素;
利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,包括:
步骤A:确定所述多个子结构元素中的任意一个子结构元素为当前结构元素,并确定所述子图像为当前子图像;
步骤B:基于当前结构元素,利用所述图像处理器对多个当前子图像依次进行与所述滤波运算类型对应的滤波运算,并确定得到的子图像为当前子图像;
步骤C:判断所述多个子结构元素中是否存在未被用于滤波运算的子结构元素,如果是,则确定未被用于滤波运算的子结构元素中的任意一个子结构元素为当前结构元素,返回执行步骤B;如果否,则停止操作。
2.根据权利要求1所述的方法,其特征在于,依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像,包括:
依据所述图像尺寸、所述结构元素及图像处理器的内存对所述原始图像进行分解,得到多个子图像;其中,每个子图像的子图像尺寸之和等于所述图像尺寸,依据任一子图像的子图像尺寸及所述结构元素进行计算得到的对该子图像进行滤波运算所需内存小于所述图像处理器的内存。
3.根据权利要求1所述的方法,其特征在于,所述图像处理器中的任一处理单元进行与所述滤波运算类型对应的滤波运算,包括:
获取全局工作项ID;
依据所述全局工作项ID访问全局内存的源数据存储空间,并获取所述源数据存储空间中存储的子图像的相应位置上的像素点,将该像素点及所述结构元素的结构元素窗口内的数据复制到工作项私有内存;
利用所述工作项私有内存中存储的像素点及对应结构元素窗口内的数据对该像素点进行与所述滤波运算类型对应的滤波运算,并将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中。
4.根据权利要求3所述的方法,其特征在于,依据所述全局工作项ID访问全局内存中的源数据存储空间,包括:
依据所述全局工作项ID访问全局内存中的源数据存储空间,其中,所述源数据存储空间为每次获取子图像时创建的,所述源数据存储空间的尺寸为所述结构元素窗口滑动覆盖当前获取的子图像后所得的尺寸。
5.根据权利要求4所述的方法,其特征在于,将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中,包括:
将运算所得结果返回至全局内存中与所述全局工作项ID对应的目标数据存储空间中,其中,所述目标数据存储空间为预先创建的,所述目标数据存储空间的尺寸为所述多个子图像中尺寸最大的子图像对应的尺寸。
6.根据权利要求1所述的方法,其特征在于,所述图像处理器为图形处理器GPU,利用所述图像处理器对所述多个子图像依次进行与所述滤波运算类型对应的基于所述结构元素实现的滤波运算,包括:
设置所述GPU对应的kernel内核程序的参数,并启动执行该kernel内核程序,以调度所述GPU中的多个处理单元依次对所述多个子图像进行滤波运算。
7.根据权利要求1至6任一项所述的方法,其特征在于,该方法基于开放运算语言OpenCL实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953779.3A CN105551002B (zh) | 2015-12-17 | 2015-12-17 | 一种图像形态学滤波方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953779.3A CN105551002B (zh) | 2015-12-17 | 2015-12-17 | 一种图像形态学滤波方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105551002A CN105551002A (zh) | 2016-05-04 |
CN105551002B true CN105551002B (zh) | 2018-04-20 |
Family
ID=55830178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510953779.3A Expired - Fee Related CN105551002B (zh) | 2015-12-17 | 2015-12-17 | 一种图像形态学滤波方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105551002B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097525B (zh) * | 2019-04-23 | 2021-01-29 | 厦门美图之家科技有限公司 | 一种图像渲染方法、装置和计算设备 |
CN113259582B (zh) * | 2020-02-13 | 2022-09-16 | 青岛海信移动通信技术股份有限公司 | 图片生成方法及终端 |
WO2023090988A1 (en) | 2021-11-16 | 2023-05-25 | Sime Darby Plantation Intellectual Property Sdn Bhd | Method for detecting and/or counting trees |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177417A (zh) * | 2013-01-06 | 2013-06-26 | 中国人民解放军信息工程大学 | 基于GPGPU的数学形态学LiDAR点云快速滤波方法 |
CN105046713A (zh) * | 2015-08-12 | 2015-11-11 | 北京航空航天大学 | 一种基于形态学的鲁棒的星点分割方法与fpga实现装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7974499B2 (en) * | 2004-12-20 | 2011-07-05 | Siemens Medical Solutions Usa, Inc. | Method and apparatus for efficient computation of morphology operations |
-
2015
- 2015-12-17 CN CN201510953779.3A patent/CN105551002B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177417A (zh) * | 2013-01-06 | 2013-06-26 | 中国人民解放军信息工程大学 | 基于GPGPU的数学形态学LiDAR点云快速滤波方法 |
CN105046713A (zh) * | 2015-08-12 | 2015-11-11 | 北京航空航天大学 | 一种基于形态学的鲁棒的星点分割方法与fpga实现装置 |
Non-Patent Citations (3)
Title |
---|
基于GPGPU的数学形态学LiDAR点云快速滤波方法;闸旋 等;《测绘科学技术学报》;20130228;第30卷(第1期);73-77 * |
基于GPU的大规模栅格数据分块并行处理方法;崔树林 等;《计算机技术与发展》;20150331;第25卷(第3期);第19页摘要,引言,第20页第2.1节,第21页第2.2,3.1,3.2节,第22页第4节 * |
基于GPU的数学形态学运算并行加速研究;张聪 等;《电子设计工程》;20111031;第19卷(第19期);141-143+146 * |
Also Published As
Publication number | Publication date |
---|---|
CN105551002A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200151289A1 (en) | Deep learning based identification of difficult to test nodes | |
DE102019103178A1 (de) | Verfahren für vorankommen und programmierbare timeouts von baumtraversierungsmechanismen in hardware | |
US10614613B2 (en) | Reducing noise during rendering by performing parallel path space filtering utilizing hashing | |
DE112020004702T5 (de) | Bildgenerierung unter verwendung eines oder mehrerer neuronaler netze | |
DE102021121187A1 (de) | EINRICHTUNG UND VERFAHREN ZUR EFFIZIENTEN GRAFIKVERARBEITUNG EINSCHLIEßLICH STRAHLVERFOLGUNG | |
US11983794B2 (en) | Parallelized pipeline for vector graphics and image processing | |
US9092901B2 (en) | Parallel grid population | |
US20200356492A1 (en) | Securing memory accesses in a virtualized environment | |
US20220027546A1 (en) | Standard cell layout generation with applied artificial intelligence | |
CN109472858A (zh) | 用于逆向图形的可微分渲染管线 | |
US10699427B2 (en) | Method and apparatus for obtaining sampled positions of texturing operations | |
Richter et al. | Out-of-core real-time visualization of massive 3D point clouds | |
US11645533B2 (en) | IR drop prediction with maximum convolutional neural network | |
DE102021116109A1 (de) | Bilderzeugung unter verwendung eines oder mehrerer neuronaler netzwerke | |
DE102020121601A1 (de) | Persistenter Notizblockspeicher zum Datenaustausch zwischen Programmen | |
EP3678037A1 (en) | Neural network generator | |
US20200043228A1 (en) | System-generated stable barycentric coordinates and direct plane equation access | |
DE102020118860A1 (de) | Techniken zum vorladen von texturen beim rendering von graphik | |
CN105551002B (zh) | 一种图像形态学滤波方法 | |
US11315310B2 (en) | Reservoir-based spatiotemporal importance resampling utilizing a global illumination data structure | |
DE102022124599A1 (de) | Vorrichtung und verfahren zur baumstrukturdatenreduzierung | |
DE112019001978T5 (de) | Verbesserung des realismus von szenen mit wasseroberflächen beim rendern | |
CN116775518A (zh) | 用于高效访问多维数据结构和/或其他大型数据块的方法和装置 | |
DE102023124837A1 (de) | Reduzierung falsch positiver Strahltraversierungen in einer Begrenzungsvolumen-Hierarchie | |
DE102023105577A1 (de) | Verfahren und Vorrichtung zum effizienten Zugriff auf mehrdimensionale Datenstrukturen und/oder andere große Datenblöcke |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180420 |
|
CF01 | Termination of patent right due to non-payment of annual fee |