基于算法库的图像处理方法及装置
技术领域
本发明涉及图像处理技术领域,尤其涉及一种基于算法库的图像处理方法及装置。
背景技术
随着计算机科学和信息技术的不断发展,医学成像技术也得到了迅速的发展,各种医用影像系统不断涌现。如计算机断层成像(CT,Computed Tomography)系统、磁共振成像(MR,Magnetic Resonance)系统、正电子发射断层成像(PET,Positron EmissionTomography)系统以及数字X射线摄影(DR,Digital Radiography)系统等。通常,一个医用影像系统中,由于成像功能的不同、应用场景的不同等,会包含有多个不同类型的产品,例如,DR系统中包含移动DR、悬吊DR、C型臂DR和多功能UC复合臂DR等多种类型的DR产品。而且对于一个医用影像系统中同一个产品,例如对于DR系统中的移动DR来说,随着产品本身功能的不断完善、不断改进,也会对该移动DR的版本进行升级,对于所述同一个产品的任何一个版本,为了得到符合临床诊断的需求的图像,同样需要对该产品所拍摄的原始图像进行处理。
通常,任意一个医用影像系统的不同类型的产品或者是同一类型的产品的不同版本中,都可能会使用不同的图像处理方法,各种图像处理方法应用的图像处理算法可能相同也可能不同,且应用的处理流程也可能不同。现有技术中,一个医用影像系统中任意一种类型的产品均对应一种图像处理方法,甚至同一类型的产品的不同版本也分别对应一套图像处理方法,因此,在医用影像系统的开发过程中,针对该医用影像系统的不同类型的产品或者是同一类型的产品的不同版本均需要单独开发和维护各自的图像处理方法,这样就造成了软件开发效率低和维护成本高的问题。
发明内容
本发明解决的问题是现有技术的医用影像系统的软件开发效率低和维护成本高的问题。
为解决上述问题,本发明技术方案提供一种基于算法库的图像处理方法,所述算法库包括父类、接口、接口实现子类和底层库,其中:
所述父类用于对解析参数进行解析以得到分离的参数;所述接口与医用影像系统的算法功能对应,每一接口对应至少一接口实现子类;所述接口实现子类用于实现图像处理流程和参数配置,所述底层库用于实现图像处理算法;
所述图像处理方法包括:
基于医用影像系统的算法功能,确定要使用的接口实现子类;
通过所述父类对解析参数进行解析以得到所述要使用的接口实现子类所需的分离的参数;
通过所述要使用的接口实现子类对应的接口调用所述要使用的接口实现子类;
初始化被调用的接口实现子类以载入所需的参数;
基于载入参数后的接口实现子类对所述医用影像系统拍摄的图像进行处理。
可选的,所述基于载入参数后的接口实现子类对所述医用影像系统摄取的图像进行处理包括:
进行参数配置;
按照所述接口实现子类的图像处理流程和参数配置,调用所述底层库的图像处理算法的代码并执行。
可选的,所载入的参数包括所述父类解析得到的分离的参数和读取配置文件得到的参数。
可选的,所载入的参数包括所述父类解析得到的分离的参数或读取配置文件得到的参数。
可选的,所述医用影像系统包括DR系统、PET系统、CT系统和MR系统中的任意一种。
对应上述基于算法库的图像处理方法,本发明技术方案还提供一种基于算法库的图像处理装置,所述算法库包括父类、接口、接口实现子类和底层库,其中:
所述父类用于对解析参数进行解析以得到分离的参数;所述接口与医用影像系统的算法功能对应,每一接口对应至少一接口实现子类;所述接口实现子类用于实现图像处理流程和参数配置,所述底层库用于实现图像处理算法;
所述图像处理装置包括:
确定单元,用于基于医用影像系统的算法功能,确定要使用的接口实现子类;
解析单元,用于通过所述父类对解析参数进行解析以得到所述要使用的接口实现子类所需的分离的参数;
调用单元,用于通过所述要使用的接口实现子类对应的接口调用所述要使用的接口实现子类;
初始化单元,用于初始化被调用的接口实现子类以载入所需的参数;
处理单元,用于基于载入参数后的接口实现子类对所述医用影像系统拍摄的图像进行处理。
可选的,所述处理单元包括:
配置子单元,用于进行参数配置;
调用子单元,用于按照所述接口实现子类的图像处理流程和参数配置,调用所述底层库的图像处理算法的代码并执行。
可选的,所载入的参数包括所述父类解析得到的分离的参数和读取配置文件得到的参数。
可选的,所载入的参数包括所述父类解析得到的分离的参数或读取配置文件得到的参数。
可选的,所述医用影像系统包括DR系统、PET系统、CT系统和MR系统中的任意一种。
本发明技术方案通过构建包括父类、接口、接口实现子类和底层库的算法库架构,由父类根据该医用影像系统中包含的不同类型的产品(例如,DR系统中包含移动DR、悬吊DR、C型臂DR和多功能UC复合臂DR等多种类型的DR产品)或者该医用影像系统中同一个类型的产品的不同版本的算法功能,解析对应所述算法功能的解析参数得到实现接口实现子类的分离参数,并通过接口调用接口实现子类,在所述接口实现子类中实现图像处理流程和参数配置,基于所述图像处理流程和参数配置调用底层库中相应的图像处理算法,由此可以实现任意一个医用影像系统(包括该医用影像系统中所存在的不同类型的产品或者该医用影像系统中同一个类型的产品的不同版本)使用同一架构的算法库,所述算法库中的图像处理算法可以被复用,且复用程度高、复用范围大。
与现有技术相比,无需针对同一个医用影像系统的不同类型的产品系统单独开发各自的图像处理算法库,而只需直接应用该算法库或者对该算法库进行简单地增加、修改等就可以快速地实现对应的图像处理方法,由此提高了开发效率。并且,也无需针对同一个医用影像系统的不同类型的产品单独维护各自的图像处理算法库,只需对一个算法库进行维护,例如增加、删除或者修改,由此降低了维护成本。
另外,所述算法库中的图像处理算法可以以动态链接库的形式供同一个医用影像系统的不同类型的产品或者医用影像系统的同一个类型的产品的不同版本使用,所述图像处理算法的复用程度高。
附图说明
图1是本发明实施例提供的算法库的架构示意图;
图2是本发明实施例提供的一种基于算法库的图像处理方法的流程示意图。
具体实施方式
分析现有技术,同一个医用影像系统的不同类型的产品或者医用影像系统的同一个类型的产品的不同版本所采用的不同的图像处理方法中既会应用到不同的图像处理算法,也会应用到很多相同的图像处理算法。
以DR系统为例,DR系统种类(产品)繁多,例如,有移动DR系统、悬吊DR系统、C型臂DR系统以及多功能UC复合臂DR系统等,所述DR系统对患者的检查部位进行曝光时,会得到原始数字化X射线图像,为了提高医学影像的诊断水平,上述不同的DR系统在得到原始数字化X射线图像后,都需要采用图像处理方法对原始的数字化X射线图像进行处理,以得到符合临床诊断需求的图像。
目前,对DR系统所拍摄的数字化X射线图像的进行处理的方法中通常会含有图像增强、图像降噪、动态范围压缩、限速器检测、直接曝光区域检测以及自动窗宽窗等多种图像处理算法。举例来说,所述图像增强可以通过提高影像中高频成份的响应而增加细节的对比度,该技术可以通过傅里叶变换实现,也可以通过选择图像锐化卷积核对图像进行卷积实现;所述图像降噪可以通过降低影像中高频成份的响应而抑制噪声,该技术同样可以通过傅里叶变换实现,也可以通过选择图像降噪卷积核对图像进行卷积运算实现。
对于不同的DR系统,图像增强算法、图像降噪算法等对于所述不同的DR系统是可以共用的,或者是差异不太大的。对于同一个DR系统的不同版本而言,除了版本之间的改进、修改等不同的部分之外,大多数的图像处理算法都是可以共用的。举例来说,对于不同的DR系统而言,例如对于DR系统1而言,需要应用到A1、A2、C等多个图像处理算法,对于DR系统2而言,需要应用到B1、B2、C等多个图像处理算法,那么算法C就是DR系统1和DR系统2可以共用的图像处理算法,也就可以被复用。同理,对于同一DR系统如DR系统3,随着系统的改进或升级,DR系统3会相应的对应有多个版本,比如版本1.0、版本1.2和版本2.0等等,这些版本之间由于系统的升级等可能导致算法应用的差异,例如版本1.0依次执行算法C1、C2和C3,版本1.2的处理流程略有变化如依次执行算法C2、C1和C3,版本2.0在版本1.2的基础上又修改了算法C3和增加了算法C4,那么算法C1和C2就是DR系统3的不同版本可以共用的图像处理算法。
基于上述分析,由于不同DR系统或同一DR系统的不同版本的图像处理方法中包含有可以共用的图像处理算法,也就为算法复用提供了条件,也就是说,同一个医用影像系统的不同类型的产品或者医用影像系统的同一个类型的产品的不同版本之间可以复用共用的图像处理算法,因此本发明技术方案提供一种基于算法库的图像处理方法。
所述算法库包括父类、接口、接口实现子类和底层库。其中,所述父类用于对解析参数进行解析以得到分离的参数;所述接口与医用影像系统(如DR系统)的算法功能对应,每一接口对应至少一接口实现子类;所述接口实现子类用于实现图像处理流程和实现参数配置,所述底层库用于实现图像处理算法。
所述图像处理方法包括:基于医用影像系统的算法功能,确定要使用的接口实现子类;通过所述父类用于对解析参数进行解析以得到所述要使用的接口实现子类所需的分离的参数;通过所述要使用的接口实现子类对应的接口调用所述要使用的接口实现子类;初始化被调用的接口实现子类以载入所需的参数,所载入的参数包括所述父类解析得到的分离的参数和/或读取配置文件得到的参数;基于载入参数后的接口实现子类对所述医用影像系统拍摄的图像进行处理。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。在本实施例中,仍以DR系统为例进行说明。
在本实施例中,首先对于算法库所包含的父类、接口、接口实现子类和底层库等进行详细说明。
图1是本发明实施例提供的算法库的架构示意图,所述算法库主要包括父类IPClass、至少一接口、接口实现子类和底层库(未图示),图1示例性地给出了两个接口DR_A1和DR_B1,接口DR_A1对应2个接口实现子类DR_A1_1和DR_A1_2,接口DR_B1对应2个接口实现子类DR_B1_1和DR_B1_2。
父类IPClass为所有图像处理算法的父类,所述父类用于对解析参数进行解析以得到分离的参数。
每一个图像处理算法会使用相应的参数,基于这些参数可以实现算法处理,例如图像增强算法可能对应使用参数a1、参数a2、参数a3等,图像降噪算法可能对应使用参数b1、参数b2、参数b3等,每一个图像处理算法都含有其对应的参数,不同的处理流程中,图像处理算法的参数值也不尽相同。
父类IPClass主要实现图像处理算法的一些初始化操作,在载入图像处理算法的参数时,通过所述父类IPClass可以解析参数得到要应用的图像处理算法中所需要的多个单独的参数。在父类IPClass中所载入的参数可以称为解析参数,所述解析参数是指所述图像处理算法的多个参数基于一定的格式,组合到一个字符串中,这个组合了多个参数的字符串实质上也是一个参数,则在通过本发明技术方案所提供的方法进行图像处理时,首先需要通过所述父类IPClass,根据所述解析参数的定义格式,把所述字符串解析成原来的多个独立的参数,以供后续图像处理算法使用。
对于不同的DR系统,图像处理方法中可能需要使用图像增强算法、图像降噪算法、动态范围压缩、限速器检测、曝光区域检测以及自动窗宽窗等多种算法,每一个DR系统所使用的图像处理算法可能会根据DR系统的拍摄需求以及DR系统性能等会有所不同,举例来说,对于移动DR系统、悬吊DR系统来说,这两种系统都需要使用图像增加算法和图像降噪算法,但移动DR系统和悬吊DR系统还各自需要使用其他不同的图像处理算法。
因此,对于算法差异较大或参数差异较大的不同的DR系统,可以分别设置对应的对外使用接口。在本实施例中,对于不同的DR系统,可以对应设置不同的接口,对于同一个DR系统的不同版本,也可以相应设置不同的接口,所述接口与DR系统的图像处理方法中所使用的算法功能对应,举例来说,对于移动DR系统来说,其对应的图像处理方法中可能需要使用算法A、算法B和算法C,而对于悬吊DR系统来说,其对应的图像处理方法中可能需要使用算法A、算法B和算法D,则对于移动DR可以对应的设置接口DR_A1,而对于悬吊DR系统则设置另外一个接口DR_A2与其对应,在接口DR_A1中可以给出算法A、算法B和算法C的对应于移动DR的实现形式,在接口DR_A2可以给出算法A、算法B和算法D的对应于悬吊DR的实现形式。在接口DR_A1和接口DR_A2中可以只是给出算法的规范的定义形式,并不会具体定义算法的实现流程,通过所定义的接口可以实现对于所对应的接口实现子类的调用,所述接口实现子类可以实现图像处理流程和参数配置等。
在本实施例中,接口实现子类DR_A1_1和接口实现子类DR_A1_2分别是接口DR_A1对应的接口实现子类;接口实现子类DR_B1_1和接口实现子类DR_B1_2分别是接口DR_B1对应的接口实现子类。需要说明的是,在其他实施例中,对于不同的DR系统,可以设定不同的接口,根据不同的接口也可以相应的设定不同的接口实现子类,具体形式和个数在此不作具体限定。
如上所述,所述接口实现子类可以用于实现图像处理流程和实现参数配置,仍以移动DR为例进行说明,假设移动DR的参数配置在系统初始化的时候已经获得,且已经通过父类IPClass对解析参数进行解析并得到所对应的各个单独的参数,则可以将从IPClass父类解析得到的参数配置到移动DR系统的接口DR_A1所对应的接口实现子类DR_A1_1或者接口实现子类DR_A1_2中。所述移动DR系统的接口DR_A1所对应的接口实现子类DR_A1_1或者接口实现子类DR_A1_2还可以实现图像处理算法的流程,但在接口实现子类中只是实现图像处理流程和实现参数配置,对于根据所述图像处理流程和参数配置具体实现的图像处理算法则是在底层库中实现的。所述图像处理流程定义了图像处理过程中要使用的图像处理算法和执行顺序等。
需要说明的是,除此之外,如图1所示,接口实现子类DR_A1_1还可以对应有子接口实现子类DR_A1_12,例如,当接口实现子类有不同的版本时,为了使得实现流程易于管理和设计,也可以对于实现图像处理算法的接口实现子类再设置相应的子类,用于对实现流程的进一步细化,例如,对于由接口实现子类DR_A1_1所产生的另外一个版本的接口实现子类,可以在对应的子接口实现子类DR_A1_12中实现,相应的可以在子接口实现子类DR_A1_12中配置其实现流程所对应的参数。
本实施例所提供的算法库,还包括底层库,所述底层库用于实现图像处理算法,对于不同的DR系统或者是同一个DR系统的不同的版本的图像处理方法中所需要的图像处理算法的具体实现方法,都可以在底层库中实现,底层库可以包括各种图像处理算法的实现代码。
需要说明的是,本实施例所提供的算法库,根据不同的DR系统,可以设置不同的接口,如果在新增一个DR系统的时候,可以增加相应的接口以及对应的接口实现子类,而对于新增的DR系统和原来的DR系统所共用的图像处理算法则可以直接应用底层库中已实现的图像处理算法,如果是新增的DR系统所独有的图像处理算法,则可以添加到底层库中,并根据需要在其接口实现子类中实现图像处理流程和参数配置,由此快速、方便且简单的新增DR系统的图像处理方法。
进一步,所述底层库中的图像处理算法的实现也可以以动态链接库的形式存在,即在各个接口实现子类调用具体的图像处理算法时,也可以直接使用动态链接库,所述动态链接库的实现形式可以采用本领域技术人员所知晓的手段获得,所述动态链接库有助于共享数据和资源,对于多个DR系统所含有的相同的图像处理算时,多个DR系统可同时访问底层库中的同一个动态链接库,达到高效复用图像处理算法功能的目的。
在本实施例中,可以将图像处理算法的具体实现部分放在底层库中,对于不同的DR系统或者同一DR系统的不同版本,通过在不同的接口所对应的接口实现子类中的图像处理流程以及参数的配置可以实现对于底层库中的具体算法的调用,对于不同的DR系统或者同一DR系统的不同版本所共用的图像处理算法,可以通过调用底层库中的同一个图像处理算法实现,因此实现了图像处理算法的复用,有效提高了图像处理算法的复用率。
基于上述包含有父类、接口、接口实现子类和底层库的算法库架构,本发明实施例提供一种图像处理方法,仍以DR系统为例进行说明,在DR系统需要对图像进行处理的时候,通过读取的参数配置信息和父类对解析参数进行解析,并根据DR系统所对应的接口调用不同的接口实现子类,根据接口实现子类中的图像处理流程以及配置的参数调用底层库中的图像处理算法,就可以实现对于DR系统所拍摄的原始图像的处理。
图2是本发明实施例提供一种基于算法库的图像处理方法的流程示意图,如图2所示,首先执行步骤S201,基于DR系统的算法功能,确定要使用的接口实现子类。
在本实施例中,所述DR系统可以为任意种类和版本的DR系统,根据不同的DR系统可以确定其所需要使用的算法功能,由此可以确定要使用的接口实现子类。对于接口实现子类的确定,可以预先根据DR系统的图像处理需求等进行预先设定,例如移动DR需要使用图1所示的接口实现子类DR_A1_1。
执行步骤S202,通过所述父类对解析参数进行解析以得到要使用的接口实现子类所需的分离的参数。
接口实现子类可以根据得到的参数信息实现图像处理流程,并对输入的参数信息进行参数配置。所述得到的参数信息可以是父类对解析参数进行解析后得到的分离的参数,例如可以是通过如图1所示的父类IPClass根据所需要使用的算法功能,获取需要的解析参数,根据所获取的解析参数的定义格式,把解析参数解析成原来的多个独立的参数,即分离的参数,供接口实现子类使用。
执行步骤S203,通过所述要使用的接口实现子类对应的接口调用所述要使用的接口实现子类。
在DR系统需要对拍摄的图像进行图像处理的时候,根据不同的处理需求,需要调用具体的图像处理算法。所述接口可以与DR系统具体的算法功能相对应,通过所述接口可以调用具体的接口实现子类实现具体的算法功能。在本实施例中,基于步骤S201可以确定需要使用的接口实现子类为如图1所示的接口实现子类DR_A1_1,则可用通过接口DR_A1实现对于所述接口实现子类DR_A1_1的调用。
执行步骤S204,初始化被调用的接口实现子类以载入所需的参数,所载入的参数包括所述父类解析得到的分离的参数和读取配置文件得到的参数。
在基于接口实现子类实现图像处理流程和参数配置等功能前,首先需要得到对应于步骤S201中所确定的要使用的接口实现子类的参数。可以通过对所述接口实现子类初始化以载入所需要的参数。所载入的参数包括所述父类解析得到的分离的参数和读取配置文件得到的参数,所述配置文件可以是预先存储在系统中的对应不同的图像处理算法的参数定义。在其他实施例中,所载入的参数也可以为所述父类解析得到的分离的参数,或者为读取配置文件得到的参数。
在确定了需要使用的算法功能后,即可以在对接口实现子类进行初始化的时候,一次性读取需要使用的算法功能所对应的参数。
执行步骤S205,基于所述被调用的接口实现子类的图像处理流程和参数配置调用底层库中的相应的图像处理算法。
接口实现子类根据步骤S202以及步骤S204中所得到的参数信息,可以进行参数配置,将所述参数信息配置到需要使用的图像处理算法中,在接口实现子类中可以基于参所述数信息实现图像处理流程和实现参数配置等,在接口实现子类完成图像处理流程和参数配置后,可以根据所述图像处理流程和参数配置调用底层库中对应的图像处理算法。
底层库中可以含有不同的DR系统或者同一DR系统的不同版本所需要使用的所有的图像处理算法的具体实现过程,对于不同的DR系统,或者是同一个DR系统的不同版本而言,如果其最后使用的图像处理算法相同,则可以通过不同的接口调用不同的接口实现子类,最后调用底层库中的同一个图像处理算法。
执行步骤S206,对DR系统拍摄的图像进行处理。
通过步骤S201至步骤S205,即可以实现对于底层库中的图像处理算法的调用,通过执行底层库中的具体的图像处理算法的代码实现对于DR系统所拍摄的图像的处理,例如对DR系统所拍摄的原始图像进行图像增强、图像去噪等相关处理,以得到符合临床诊断需求的图像。
至此完成对于DR系统所拍摄的原始图像的图像处理过程。
在本实施例中,对于不同的DR系统或者同一个DR系统的不同版本,通过与其所需的算法功能所对应的接口调用接口实现子类,进而实现对于底层库中具体的图像处理算法的调用,可以实现对于不同DR系统或者是同一个DR系统的不同版本,复用同一个算法库中的图像处理算法,有效提高图像处理算法的复用率。
进一步,在对原始图像进行处理的过程中,可以基于接口实现子类中图像处理流程和参数配置直接调用算法库中的对应的图像处理算法的代码,也可以将算法库中的每一个图像处理算法均编译为对应的动态链接库的形式,在基于接口实现子类中实现图像处理流程和参数配置调用算法库中的图像处理算法时,直接调用图像处理算法所对应的动态链接库,实现对于算法库中的图像处理算法的代码编译前或者编译后的复用,达到高效复用图像处理算法功能的目的。
在上述实施例中,以DR系统为例进行了说明,但本发明不局限于DR系统,本发明也可应用于其他的医用影像系统,例如PET系统、CT系统或者MR系统等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。