图像中梯度特征的确定方法及装置、脊柱手术机器人转让专利

申请号 : CN202111524724.2

文献号 : CN114170209B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李亚谢永召宫明波要文杰陈露田庆赵海霞

申请人 : 北京柏惠维康科技股份有限公司

摘要 :

本发明提供了一种图像中梯度特征的确定方法及装置、脊柱手术机器人,图像中梯度特征的确定方法包括:确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征,可以加快梯度特征的计算速度。

权利要求 :

1.一种图像中梯度特征的确定方法,其特征在于,包括:

确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;

针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;

根据M个像素块中所有像素的梯度,所述M个像素块中所有像素的梯度包括水平梯度和垂直梯度,对所述M个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征;

其中,根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,包括:确定所述M个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;根据所述水平梯度加和值和水平梯度二次方加和值,确定所述目标图像的水平梯度特征;确定所述M个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述目标图像的垂直梯度特征。

2.根据权利要求1所述的方法,其特征在于,所述确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,包括:根据预先建立的像素块和线程块之间的索引关系,确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块。

3.根据权利要求1所述的方法,其特征在于,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度之前,包括:根据预先建立的线程和像素之间的索引关系,确定每个线程与每个像素之间的处理关系,以使得所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度。

4.根据权利要求1所述的方法,其特征在于,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,包括:所述N个线程调用预先封装的像素梯度特征计算核函数对所述N个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N个像素的水平梯度和垂直梯度。

5.根据权利要求1所述的方法,其特征在于,所述根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,之后包括:将所述目标图像的水平梯度特征和垂直梯度特征分别存储在水平梯度特征空间和垂直梯度特征空间中。

6.根据权利要求1所述的方法,其特征在于,所述确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,之前包括:对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述目标图像。

7.根据权利要求6所述的方法,其特征在于,所述对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述目标图像,包括:基于图像变换矩阵,对所述术前三维CT源图像进行图像变换得到术前三维CT校正图像;对所述术前三维CT校正图像进行投影处理生成二维投影图像。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:将所述术前三维CT源图像作为浮动图像,并将其对应的术中X‑RAY图像作为固定图像;

所述根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征,之后包括:根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像。

9.根据权利要求8所述的方法,其特征在于,所述根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像,包括:根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,计算所述二维投影图像和所述固定图像的相似度;

根据所述相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像。

10.根据权利要求8或9所述的方法,其特征在于,所述根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像之前,包括:对所述固定图像进行标定,以使得所述固定图像的尺寸与所述二维投影图像的尺寸相等且所述固定图像与所述二维投影图像中每两个对应像素具有相同的物理位置信息。

11.一种图像中梯度特征的确定装置,其特征在于,包括:

线程块确定单元,用于确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;

梯度计算单元,用于针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;

梯度特征确定单元,用于根据M个像素块中所有像素的梯度,所述M个像素块中所有像素的梯度包括水平梯度和垂直梯度,对所述M个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征;

其中,根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,包括:确定所述M个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;根据所述水平梯度加和值和水平梯度二次方加和值,确定所述目标图像的水平梯度特征;确定所述M个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述目标图像的垂直梯度特征。

12.一种电子设备,其特征在于,所述电子设备包括:

处理器、存储器,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1‑10中任意一项权利要求所述的方法。

13.一种计算机存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1‑10中任意一项权利要求所述的方法。

14.一种脊柱手术机器人,其特征在于,包括GPU设备,所述GPU设备用于执行如下步骤:

确定GPU设备中对术前三维CT源图像的二维投影图像中第i1个像素块进行处理时可用的第一目标线程块,以及对X‑RAY图像中第i2个像素块进行处理时可用的第二目标线程块,其中,所述第i1个像素块包括N1个像素,所述第一目标线程块包括N1个线程,所述第i2个像素块包括N2个像素,所述第二目标线程块包括N2个线程,N1、N2大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i1≤M1,1≤i2≤M1,M1为所述术前三维CT源图像的二维投影图像包括的像素块的总量,M1≥1且为整数,M2为所述X‑RAY图像包括的像素块的总量,M2≥1且为整数;

针对所述第i1个像素块,所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度,其中,一个线程针对一个像素;

针对所述第i2个像素块,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度,其中,一个线程针对一个像素;

所述M1个像素块中所有像素的梯度包括水平梯度和垂直梯度,对所述M1个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,根据所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,确定所述术前三维CT源图像的二维投影图像的水平梯度特征和垂直梯度特征;其中,所述根据所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,确定所述术前三维CT源图像的二维投影图像的水平梯度特征和垂直梯度特征,包括:确定所述M1个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M1个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;根据所述水平梯度加和值和水平梯度二次方加和值,确定所述术前三维CT源图像的二维投影图像的水平梯度特征;确定所述M1个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M1个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述术前三维CT源图像的二维投影图像的垂直梯度特征;

所述M2个像素块中所有像素的梯度包括水平梯度和垂直梯度,对所述M2个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M2个像素块中所有像素的归一化水平梯度和归一化垂直梯度,根据所述M2个像素块中所有像素的归一化水平梯度和归一化垂直梯度,确定所述X‑RAY图像的二维投影图像的水平梯度特征和垂直梯度特征;

根据所述术前三维CT源图像的二维投影图像的水平梯度特征和垂直梯度特征以及所述X‑RAY图像的水平梯度特征和垂直梯度特征,确定所述术前三维CT源图像的二维投影图像和X‑RAY图像的相似度;

响应于所述相似度满足设定的相似度函数,对所述术前三维CT源图像和X‑RAY图像进行融合处理得到融合图像以将在所述术前CT图像上的手术规划映射到所述X‑RAY图像上。

说明书 :

图像中梯度特征的确定方法及装置、脊柱手术机器人

技术领域

[0001] 本发明涉及图像处理技术领域,具体涉及图像中梯度特征的确定方法及装置、脊柱手术机器人。

背景技术

[0002] 脊柱手术辅助机器人技术中,借助二维或者三维医学影像对病灶点进行准确定位,以实现手术中的精准穿刺。其中,对于借助三维医学图像进行定位来说,需要在术中对患者的脊柱进行实时扫描得的三维医学图像,然后在该三维医学图像上逐个锥体进行手术规划,再进行手术置钉对病灶点进行准确定位,但是,目前的三维医学图像是CT图像,因此,在术中进行规划,耗时较长,且拍摄CT图像会产生大量的辐射。而对于基于二维医学图像比如X‑RAY图像来说,仅需术中拍摄正侧位两张图像,分别从两张图像上逐个椎体进行手术规划,但是,由于是基于二维图像,因此,难以形成三维立体空间结构特征,由此导致手术规划难度较大。因此现有技术中,采用术前CT图像进行手术规划,再通过术前CT图像和术中X‑RAY图像的融合,将术前CT图像上的手术规划映射到X‑RAY图像中,从而降低了手术规划的难度,节省手术规划的时间,同时既减少了术中辐射,同时缩短了术中时间。
[0003] 但是,在进行术前CT图像和术中X‑RAY图像融合时,需要计算术前CT图像和术中X‑RAY图像的梯度特征,而由于术前CT图像和术中X‑RAY图像一般较大,由此术前CT图像和术中X‑RAY图像的梯度特征的计算速度较慢。

发明内容

[0004] 本发明实施例提供图像中梯度特征的确定方法及装置、脊柱手术机器人,用于克服或者缓解现有技术中的上述问题。
[0005] 本发明采用的技术方案为:
[0006] 一种图像中梯度特征的确定方法,其包括:
[0007] 确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;
[0008] 针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;
[0009] 根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征。
[0010] 一种图像中梯度特征的确定装置,其包括:
[0011] 线程块确定单元,用于确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;
[0012] 梯度计算单元,用于针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;
[0013] 梯度特征确定单元,用于根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征。
[0014] 一种电子设备,所述电子设备包括:
[0015] 处理器、存储器,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行本申请中任意一实施例所述的方法。
[0016] 一种计算机存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现本申请中任意一实施例所述的方法。
[0017] 一种脊柱手术机器人,其特征在于,包括GPU设备,所述GPU设备用于执行如下步骤:
[0018] 确定GPU设备中对术前三维CT源图像的二维投影图像中第i1个像素块进行处理时可用的第一目标线程块,以及对X‑RAY图像中第i2个像素块进行处理时可用的第二目标线程块,其中,所述第i1个像素块包括N1个像素,所述第一目标线程块包括N1个线程,所述第i2个像素块包括N2个像素,所述第二目标线程块包括N2个线程,N1、N2大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i1≤M1,1≤i2≤M1,M1为所述术前三维CT源图像的二维投影图像包括的像素块的总量,M1≥1且为整数,M2为所述X‑RAY图像包括的像素块的总量,M2≥1且为整数;
[0019] 针对所述第i1个像素块,所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度,其中,一个线程针对一个像素;
[0020] 针对所述第i2个像素块,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度,其中,一个线程针对一个像素;
[0021] 根据M1个像素块中像素的梯度,确定所述术前三维CT源图像的二维投影图像的梯度特征;
[0022] 根据M2个像素块中像素的梯度,确定所述X‑RAY图像的梯度特征;
[0023] 根据所述术前三维CT源图像的二维投影图像的梯度特征以及所述X‑RAY图像的梯度特征,确定所述术前三维CT源图像的二维投影图像和X‑RAY图像的相似度;
[0024] 响应于所述相似度满足设定的相似度函数,对所述术前三维CT源图像和X‑RAY图像进行融合处理得到融合图像以将在所述术前CT图像上的手术规划映射到所述X‑RAY图像上。
[0025] 本发明实施例提供的技术方案中,通过确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征,可以加快梯度特征的计算速度,比如应用到术前CT图像和术中X‑RAY图像的梯度特征的计算时,可以加快术前CT图像和术中X‑RAY图像的梯度特征计算速度。

附图说明

[0026] 图1为本申请实施例一种图像中梯度特征的确定方法流程示意图;
[0027] 图2为本申请实施例一种图像间相似度的确定方法流程示意图;
[0028] 图3为本申请实施例一种图像融合方法流程示意图;
[0029] 图4为本申请实施例一种图像中梯度特征的确定装置的结构示意图;
[0030] 图5为本申请实施例一种图像间相似度的确定装置的结构示意图;
[0031] 图6为本申请实施例一种图像融合装置的结构示意图;
[0032] 图7为本申请实施例一种电子设备的具体硬件结构示意图。

具体实施方式

[0033] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0034] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
[0035] 此外,术语“预估”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“预估”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。符号“/”一般表示前后关联对象是一种“或”的关系。
[0036] 在本公开中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
[0037] 本申请下述图1实施例中,以在医疗应用场景中进行应用为例进行说明,因此,确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块之前,对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述目标图像为例进行说明。
[0038] 具体地,以所述对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述目标图像,包括:基于图像变换矩阵,对所述术前三维CT源图像进行图像变换得到术前三维CT校正图像;对所述术前三维CT校正图像进行投影处理生成二维投影图像。该图像变换矩阵比如包括沿着XYZ三个方向的平移参数(tx,ty,tz),以及旋转参数(θx,θy,θz),比如图像变换矩阵记为:T=(tx,ty,tz,θx,θy,θz)。
[0039] 为了确定得到与X‑RAY图像相似度最高的二维投影图像,将所述术前三维CT源图像作为浮动图像,并将其对应的术中X‑RAY图像作为固定图像;
[0040] 所述根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征,之后包括:根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像。在调整时,按照使得二维投影图像相似于固定图像的方向,对平移参数(tx,ty,tz),以及旋转参数(θx,θy,θz)进行调整。
[0041] 具体地,所述根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像时,具体根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,计算所述二维投影图像和所述固定图像的相似度;根据所述相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像。
[0042] 具体地,为了保证固定图像的尺寸与所述二维投影图像具有相同的物理位置信息,所述根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像之前,包括:对所述固定图像进行标定,以使得所述固定图像的尺寸与所述二维投影图像的尺寸相等且所述固定图像与所述二维投影图像中每两个对应像素具有相同的物理位置信息。
[0043] 图1为本申请实施例一种图像中梯度特征的确定方法流程示意图;如图1所示,其包括:
[0044] S101、确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块;
[0045] 本实施例中,所述目标图像可以为任意要进行梯度特征计算的图像,其可以但不局限为上述背景技术中的应用于医学领域的三维医学图像和二维医学图像,具体地,三维医学图像比如为CT图像,二维医学图像比如为X‑RAY图像(或者简称X图像)。
[0046] 本实施例中,所述第i个像素块包括N个像素,所述第一目标线程块(Block)包括N个线程(thread),N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数。
[0047] 具体地,本实施例中,每个像素块包括的像素数量可以相同,也可以不同;每个第一目标线程块包括的线程数量可以相同,也可以不同,具体根据应用场景来确定。
[0048] 具体地,可以通过GPU设备的可用线程数进行统计,然后,再结合所述目标图像包括的像素总量,来进行上述像素块和第一目标线程块的划分。
[0049] 优选地,为了降低算法设计的复杂度,将所述第一目标线程块中的包括的线程数量N设置为等于所述GPU设备单次运行支持的最大线程数,另外,由于第i个像素块包括N个像素,即所述GPU设备单次运行时可以使得一个线程处理一个像素,以在后续步骤S102中使用N个线程对N个像素进行并行处理,以达到并行计算N个像素的梯度。
[0050] 当然,此处将所述第一目标线程块中的包括的线程数量N设置为等于所述GPU设备单次运行支持的最大线程数并非唯一性限定,也可以将所述第一目标线程块中的包括的线程数量N设置为小于所述GPU设备单次运行支持的最大线程数。
[0051] 具体可以参照如下公式(1)来计算对所述目标图像的所有像素要进行处理完,要使用的第一目标线程块的总数量:
[0052] M=(int)N/BlockDim,  (1)
[0053] 公式(1)中,N表示所述目标图像的像素总数量,BlockDim表示所述GPU设备单次运行支持的最大线程数,int为考虑到如果上述公式不能整除的情形,则增加一个额外的第一目标线程块。
[0054] 进一步地,所有的第一目标线程块可以以网格(grid)的形式进行管理。
[0055] 此处需要说明的是,对于目标图像中最后一个要处理的像素块,其包括的像素数量如果少于N,则可以从第一目标线程块的N线程中选择部分线程针对该最后一个像素块进行处理即可,或者,为了算法设计的通用性,也可以选用N个线程,但多余的线程在运行时处于空载状态或者又称之为假运行,即在执行下述步骤S102时,多余的线程无须实际调用像素梯度特征计算核函数。
[0056] 可选地,本实施例中,所述确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块,包括:
[0057] 根据预先建立的像素块和线程块之间的索引关系,确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块。
[0058] 本实施例中,在进行上述像素块和线程块的划分时,由于会存在多个像素块,以及多个第一目标线程块,因此,为了区分线程块和像素块之间的处理关系,预先建立了像素块和线程块之间的索引关系,从而通过所述索引关系,可以快速地确定出对第i个像素块进行处理时可用的第一目标线程块。具体地,可以通过给像素块和线程块分配ID的方式来建立所述索引关系。具体地,可以直接将像素块的位置序号和线程块的排序序号作为对应的ID,而即可将线程块的ID作为所述索引关系(此时该索引关系又可称之为线程块的索引),从而简化了所述索引关系的建立,另外,使用线程块的ID或者像素块的ID,即可确定出对第i个像素块进行处理时可用的第一目标线程块。
[0059] S102、针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度;
[0060] 其中,一个线程针对一个像素;
[0061] 本实施例中,针对每个像素分配了一个线程进行处理,以并行计算N个像素的梯度。
[0062] 通过对上述i进行迭代,比如i=i+1,从而遍历目标图像中所有的像素块,以计算出M个像素块中像素的梯度。
[0063] 可选地,本实施例中,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度之前,包括:
[0064] 针对所述第一目标线程块,根据预先建立的线程和像素之间的索引关系,确定每个线程与每个像素之间的处理关系,以使得所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度。
[0065] 本实施例中,由于一个像素块包括多个像素,一个第一目标线程块包括多个像素,为了区分线程和像素之间的处理关系,预先建立了像素和线程之间的索引关系,从而通过所述索引关系,可以快速地确定出对每个像素进行处理的线程。具体地,可以给像素和线程分配ID的方式来建立所述索引关系。具体地,可以直接将像素和线程分别在像素块的位置序号和线程块中的排序置序号作为对应的ID,而即可将线程的ID作为所述索引关系(此时又可称之为线程的索引),从而简化了所述索引关系的建立,另外,使用线程的ID或者像素的ID,即可确定出对每个像素进行处理的线程。
[0066] 示例性地,具体可通过如下公式(2)来确定每个线程与每个像素之间的处理关系:
[0067] I=BlockID*BlockDim+threadID  (2)
[0068] BlockID表示第一个目标线程块的索引,BlockDim表示所述GPU设备单次运行支持的最大线程数,threadID表示线程的索引,I表示threadID对应的线程要处理的像素(或者又可称之为像素的索引)。
[0069] 可选地,本实施例中,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,包括:所述N个线程调用预先封装的像素梯度特征计算核函数对所述N个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N个像素的水平梯度和垂直梯度。
[0070] 此处,需要说明的是,计算所述N个像素的水平梯度和垂直梯度仅仅是实例,在其他实施例中,也可以计算所述N个像素的水平梯度或者垂直梯度。
[0071] 具体地,像素梯度特征计算核函数可以根据设置的边缘检测算子来对每个像素并行进行水平方向和垂直方向的边缘检测,具体地,该边缘检测算子包括水平边缘检测算子,以及垂直边缘检测算子,水平边缘检测算子与像素的像素值进行卷积得到水平梯度,垂直边缘检测算子与像素的像素值进行卷积得到垂直梯度。具体地,该边缘检测算子可以为索贝尔算子,当然,在其他实施例中,也可以使用其他边缘检测算子。
[0072] 优选地,本实施例中,每个线程使用的像素梯度特征计算核函数在运算方式上完全相同(或者又称之为同构的像素梯度特征计算核函数,如均为与相同的水平边缘检测算子进行卷积处理),所不同是,输入到该像素梯度特征计算核函数中的像素值是对应不同的像素。当然,在一些应用场景中,也可以使用异构的像素梯度特征计算核函数,即可用的像素梯度特征计算核函数具有不同的运算形式(比如与不同的水平边缘检测算子进行非卷积或者卷积处理)。
[0073] 具体地,对所述N个像素并行进行水平方向和垂直方向的边缘检测时,可以根据设置的梯度计算窗口以N个像素中的多个像素为一组,对该一组像素同时进行水平方向和垂直方向的边缘检测,从而提高边缘检测的速度,进一步提高水平梯度和垂直梯度的计算速度。比如索贝尔算子为3*3的矩阵,则梯度计算窗口也为3*3,以同时可对9个像素进行水平方向和垂直方向的边缘检测。索贝尔算子的具体数值根据应用场景确定即可。
[0074] S103、根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征。
[0075] 本实施例中,所述根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征,包括:根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征。
[0076] 本实施例中,根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,包括:对所述M个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度;根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征。
[0077] 本实施例中,所述对所述M个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,包括:
[0078] 确定所述目标图像的平均水平梯度,并确定每个像素的水平梯度与所述平均水平梯度的差值,将每个像素的水平梯度与所述平均水平梯度的差值作为每个像素的归一化水平梯度;
[0079] 确定所述目标图像的平均垂直梯度,并确定每个像素的垂直梯度与所述平均垂直梯度的差值,将每个像素的垂直梯度与所述平均垂直梯度的差值作为每个像素的归一化垂直梯度。
[0080] 具体地,本实施例中,求取所述目标图像中所有像素的水平梯度的均值,以作为所述目标图像的平均水平梯度;求取所述目标图像中所有像素的垂直梯度的均值,以作为所述目标图像的平均垂直梯度。
[0081] 本实施例中,根据所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,包括:
[0082] 确定所述M个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;
[0083] 根据所述水平梯度加和值和水平梯度二次方加和值,确定所述目标图像的水平梯度特征;
[0084] 确定所述M个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;
[0085] 根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述目标图像的垂直梯度特征。
[0086] 此处,需要说明的是,确定所述目标图像的水平梯度特征和垂直梯度特征之间并无严格的时序。
[0087] 本实施例中,对所述M个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M个像素块中所有像素的归一化水平梯度和归一化垂直梯度时,可以启用GPU设备中空闲的线程块调用对应的归一化核函数来并行对所述M个像素块中所有像素的水平梯度和垂直梯度进行归一化处理,线程块中的一个线程对应一个像素,从而提高归一化处理的速度。
[0088] 本实施例中,可以启用GPU设备中空闲的线程块来执行上述确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值时,比如,在确定归一化水平梯度、归一化垂直梯度之后,启用空闲的线程块中的四个线程来调用预先封装的图像梯度特征计算核函数并行确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值,从而进一步提高了目标图像的梯度特征计算速度。
[0089] 具体地,可以分别按照如下公式(3)、(4)定义的图像梯度特征计算核函数计算所述目标图像的水平梯度特征和垂直梯度特征:
[0090]
[0091]
[0092] 公式(3)中,Gx表示所述目标图像的水平梯度特征, 表示目标图像F上位置(i,j)处的像素的水平梯度, 表示目标图像的平均水平梯度, 表示位置(i,j)处的像素的归一化水平梯度;
[0093] 公式(4)中,Gy表示所述目标图像的垂直梯度特征, 表示所述目标图像F上位置(i,j)处的像素的垂直梯度, 目标图像的平均垂直梯度, 表示位置(i,j)处的像素的归一化垂直梯度。
[0094] 此处,需要说明的是,由于步骤S103的数据计算量相对于步骤S102的数据计算量已经大大减少,在其他实施例中,也可以不限定使用GPU设备中的线程块来执行,比如也可以由CPU来执行。
[0095] 本实施例中,在上述实施例的基础上,所述根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征,之后包括:将所述目标图像的水平梯度特征和垂直梯度特征分别存储在水平梯度特征空间和垂直梯度特征空间中,以便于其他应用场景需要目标图像的水平梯度特征和垂直梯度特征时,直接从水平梯度特征空间和垂直梯度特征空间中获取即可,提高了数据访问的速度。
[0096] 另外,需要说明的是,上述实施例中,并不限定目标图像的数量,GPU设备可以针对一幅目标图像进行处理,当然,如果GPU设备的线程资源如果较多,可以同时针对多幅目标图像进行处理。
[0097] 下述图2实施例中,以将上述图1提供的实施例,应用到确定图像间相似度的场景进行说明。
[0098] 与上述图1实施例类似,以在医疗应用场景中进行应用为例进行说明,因此,在确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块,之前包括:对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述第一图像。
[0099] 具体地,所述对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述第一图像,包括:基于图像变换矩阵,对所述术前三维CT源图像进行图像变换得到术前三维CT校正图像;对所述术前三维CT校正图像进行投影处理生成二维投影图像。
[0100] 具体地,所述第二图像为所述术前三维CT源图像对应的术中X‑RAY图像,所述方法还包括:将所述术前三维CT源图像作为浮动图像,并将所述X‑RAY图像作为固定图像;
[0101] 所述根据所述第一图像的梯度特征以及所述第二图像的梯度特征,确定所述第一图像和第二图像之间的相似度,之后包括:根据所述二维投影图像和所述固定图像的相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像。
[0102] 具体地,所述根据所述二维投影图像和所述固定图像的相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像之前,包括:对所述固定图像进行标定,以使得所述固定图像的尺寸与所述二维投影图像的尺寸相等且所述固定图像与所述二维投影图像中每两个对应像素具有相同的物理位置信息。
[0103] 有关图像变换矩阵的说明可参见上述图1实施例记载。
[0104] 图2为本申请实施例一种图像间相似度的确定方法流程示意图;如图2所示,其包括:
[0105] S201、确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块;
[0106] 本实施例中,所述第i1个像素块包括N1个像素,所述第一目标线程块包括N1个线程,所述第i2个像素块包括N2个像素,所述第二目标线程块包括N2个线程,N1、N2大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i1≤M1,1≤i2≤M1,M1为所述第一图像包括的像素块的总量,M1≥1且为整数,M2为所述第二图像包括的像素块的总量,M2≥1且为整数。
[0107] 本实施例中,与上述图1实施例不同的是,由于GPU设备处理的对象包括了第一图像和第二图像,因此,在进行线程块的划分时,可以有如下两种情形:
[0108] (1)可以以处理完第一图像之后,占用的线程块被释放,再进行针对第二图像的处理为例进行划分,比如第一目标线程块被释放直接作为第二线程块,或者,第一目标线程块被释放,对GPU设备的线程按照第二图像的像素进行重新划分得到第二目标线程块。
[0109] (2)可以以并行处理第一图像和第二图像进行划分,处理第一图像的线程块为第一目标线程块,而处理第二图像的线程块为第二目标线程块。无论那种情形,只要在进行线程块的划分线程块中的包括的线程数量N设置为小于所述GPU设备单次运行支持的最大线程数即可。
[0110] 无论那种情形,具体可参考上述公式(1)进行线程块的划分。如果针对上述第(1)种情形,则公式(1)中,针对第一图像时,N表示所述第一图像的像素总数量,M表示第一目标线程块的数量,针对第二图像时,N表示所述第二图像的像素总数量,M表示第二目标线程块的数量。如果针对上述第(2)种情形,N表示所述第一图像和第二图像之间的像素总数量,则M表示第一目标线程块与第二目标线程块的总和。
[0111] 进一步地,所有的第一目标线程块可以以网格(grid)的形式进行管理。
[0112] 此处需要说明的是,对于第一图像中最后一个要处理的像素块,其包括的像素数量如果少于N,则可以从第一目标线程块的N线程中选择部分线程针对该最后一个像素块进行处理即可,或者,为了算法设计的通用性,也可以选用N个线程,但多余的线程在运行时处于空载状态或者又称之为假运行,即在执行下述步骤S202时,多余的线程无须实际调用像素梯度特征计算核函数。
[0113] 进一步地,所有的第二目标线程块可以以网格(grid)的形式进行管理。
[0114] 此处需要说明的是,对于第二图像中最后一个要处理的像素块,其包括的像素数量如果少于N,则可以从第二目标线程块的N线程中选择部分线程针对该最后一个像素块进行处理即可,或者,为了算法设计的通用性,也可以选用N个线程,但多余的线程在运行时处于空载状态或者又称之为假运行,即在执行下述步骤S203时,多余的线程无须实际调用像素梯度特征计算核函数。
[0115] 本实施例中,所述确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块,包括:根据预先建立的像素块和线程块之间的索引关系,确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块。
[0116] 本实施例中,在进行上述像素块和线程块的划分时,由于会存在多个像素块,以及多个第一目标线程块和多个第一目标线程块,因此,为了区分线程块和像素块之间的处理关系,预先建立了像素块和线程块之间的索引关系,从而通过所述索引关系,可以快速地确定出第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块。具体地,可以通过给像素块和线程块分配ID的方式来建立所述索引关系。具体地,可以直接将像素块的位置序号(包括像素块所在图像的ID和在该图像中的位置序号)和线程块的排序序号作为对应的ID,而即可将线程块的ID作为所述索引关系(此时该索引关系又可称之为线程块的索引),从而简化了所述索引关系的建立,另外,使用线程块的ID或者像素块的ID,即可确定出对第i1个像素块进行处理时可用的第一目标线程块,以及对第i2个像素块进行处理时可用的第二目标线程块。
[0117] 另外,需要说明的是,步骤S201中,确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块可以同时进行,也可以在不限定特定时序的前提下按照先后顺序执行。
[0118] S202、针对所述第i1个像素块,所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度;
[0119] 其中,一个线程针对一个像素;
[0120] 本实施例中,针对第i1个像素块的每个像素分配了一个线程进行处理,以并行计算N1个像素的梯度。
[0121] 通过对上述i1进行迭代,比如i1=i1+1,从而遍历第一图像中所有的像素块,以计算出M1个像素块中像素的梯度。
[0122] 可选地,上述步骤S202中所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度,包括:所述N1个线程调用预先封装的像素梯度特征计算核函数对所述N1个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N1个像素的水平梯度和垂直梯度;
[0123] 此处,需要说明的是,计算所述N1个像素的水平梯度和垂直梯度仅仅是实例,在其他实施例中,也可以计算所述N1个像素的水平梯度或者垂直梯度。
[0124] 具体地,针对所述N1个像素,像素梯度特征计算核函数可以根据设置的边缘检测算子来对每个像素并行进行水平方向和垂直方向的边缘检测,具体地,该边缘检测算子包括水平边缘检测算子,以及垂直边缘检测算子,水平边缘检测算子与像素的像素值进行卷积得到水平梯度,垂直边缘检测算子与像素的像素值进行卷积得到垂直梯度。具体地,该边缘检测算子可以为索贝尔算子,当然,在其他实施例中,也可以使用其他边缘检测算子。
[0125] 优选地,本实施例中,针对所述N1个像素,每个线程使用的像素梯度特征计算核函数在运算方式上完全相同(或者又称之为同构的像素梯度特征计算核函数,如均为与相同的水平边缘检测算子进行卷积处理),所不同是,输入到该像素梯度特征计算核函数中的像素值是对应不同的像素。当然,在一些应用场景中,也可以使用异构的像素梯度特征计算核函数,即可用的像素梯度特征计算核函数具有不同的运算形式(比如与不同的水平边缘检测算子进行非卷积或者卷积处理)。
[0126] 具体地,对所述N1个像素并行进行水平方向和垂直方向的边缘检测时,可以根据设置的梯度计算窗口以N1个像素中的多个像素为一组,对该一组像素同时进行水平方向和垂直方向的边缘检测,从而提高边缘检测的速度,进一步提高水平梯度和垂直梯度的计算速度。比如索贝尔算子为3*3的矩阵,则梯度计算窗口也为3*3,以同时可对9个像素进行水平方向和垂直方向的边缘检测。索贝尔算子的具体数值根据应用场景确定即可。
[0127] S203、针对所述第i2个像素块,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度;
[0128] 其中,一个线程针对一个像素;
[0129] 本实施例中,针对第i2个像素块的每个像素分配了一个线程进行处理,以并行计算N2个像素的梯度。
[0130] 通过对上述i2进行迭代,比如i2=i2+1,从而遍历第二图像中所有的像素块,以计算出M2个像素块中像素的梯度。
[0131] 本实施例中所述方法还包括:根据预先建立的线程和像素之间的索引关系,确定每个线程与每个像素之间的处理关系,以使得所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以及所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度。该步骤比如在步骤S202,203之前执行,或者,其中使得所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度的处理在步骤S202之前执行,而其中使得所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度的处理,在步骤S203之前执行。
[0132] 本实施例中,由于第i1个像素块和第i2个像素块均包括多个像素,一个第一目标线程块和一个第二目标线程块均包括多个像素,为了区分线程和像素之间的处理关系,预先建立了像素和线程之间的索引关系,从而通过所述索引关系,可以快速地确定出对每个像素进行处理的线程。具体地,可以给像素和线程分配ID的方式来建立所述索引关系。具体地,可以直接将像素和线程分别在像素块的位置序号和线程块中的排序置序号作为对应的ID,而即可将线程的ID作为所述索引关系(此时又可称之为线程的索引),从而简化了所述索引关系的建立,另外,使用线程的ID或者像素的ID,即可确定出对第i1个像素块和第i2个像素块中每个像素进行处理的线程。
[0133] 参见上述公式(2),如果按照上述第(1)种情形进行线程块的划分,则公式(2)中,BlockID表示第一个目标线程块或者第二目标线程块的索引,BlockDim表示所述GPU设备单次运行支持的最大线程数,threadID表示第一个目标线程块或者第二目标线程块中线程的索引,I表示threadID对应的线程在第i1个像素块或者第i2个像素块中要处理的像素(或者又可称之为像素的索引)。
[0134] 可选地,上述步骤S203中,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度,包括:所述N2个线程调用预先封装的像素梯度特征计算核函数对所述N2个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N2个像素的水平梯度和垂直梯度;
[0135] 此处,需要说明的是,计算所述N2个像素的水平梯度和垂直梯度仅仅是实例,在其他实施例中,也可以计算所述N2个像素的水平梯度或者垂直梯度。
[0136] 具体地,针对所述N2个像素,像素梯度特征计算核函数可以根据设置的边缘检测算子来对每个像素并行进行水平方向和垂直方向的边缘检测,具体地,该边缘检测算子包括水平边缘检测算子,以及垂直边缘检测算子,水平边缘检测算子与像素的像素值进行卷积得到水平梯度,垂直边缘检测算子与像素的像素值进行卷积得到垂直梯度。具体地,该边缘检测算子可以为索贝尔算子,当然,在其他实施例中,也可以使用其他边缘检测算子。
[0137] 优选地,本实施例中,针对所述N2个像素,每个线程使用的像素梯度特征计算核函数在运算方式上完全相同(或者又称之为同构的像素梯度特征计算核函数,如均为与相同的水平边缘检测算子进行卷积处理),所不同是,输入到该像素梯度特征计算核函数中的像素值是对应不同的像素。当然,在一些应用场景中,也可以使用异构的像素梯度特征计算核函数,即可用的像素梯度特征计算核函数具有不同的运算形式(比如与不同的水平边缘检测算子进行非卷积或者卷积处理)。
[0138] 具体地,对所述N2个像素并行进行水平方向和垂直方向的边缘检测时,可以根据设置的梯度计算窗口以N2个像素中的多个像素为一组,对该一组像素同时进行水平方向和垂直方向的边缘检测,从而提高边缘检测的速度,进一步提高水平梯度和垂直梯度的计算速度。比如索贝尔算子为3*3的矩阵,则梯度计算窗口也为3*3,以同时可对9个像素进行水平方向和垂直方向的边缘检测。索贝尔算子的具体数值根据应用场景确定即可。
[0139] S204、根据M1个像素块中像素的梯度,确定所述第一图像的梯度特征;
[0140] 对应地,所述步骤S204中,根据M1个像素块中像素的梯度,确定所述第一图像的梯度特征,包括:根据所述M1个像素块中所有像素的水平梯度和垂直梯度,确定所述第一图像的水平梯度特征和垂直梯度特征;
[0141] 本实施例中,根据所述M1个像素块中所有像素的水平梯度和垂直梯度,分别确定所述第一图像的水平梯度特征和垂直梯度特征,包括:对所述M1个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度;根据所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述第一图像的水平梯度特征和垂直梯度特征。
[0142] 本实施例中,所述对所述M1个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,包括:
[0143] 确定所述第一图像的平均水平梯度,并确定每个像素的水平梯度与所述平均水平梯度的差值,将每个像素的水平梯度与所述平均水平梯度的差值作为每个像素的归一化水平梯度;
[0144] 确定所述第一图像的平均垂直梯度,并确定每个像素的垂直梯度与所述平均垂直梯度的差值,将每个像素的垂直梯度与所述平均垂直梯度的差值作为每个像素的归一化垂直梯度。
[0145] 具体地,本实施例中,求取所述第一图像中所有像素的水平梯度的均值,以作为所述第一图像的平均水平梯度;求取所述第一图像中所有像素的垂直梯度的均值,以作为所述第一图像的平均垂直梯度。
[0146] 本实施例中,根据所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述第一图像的水平梯度特征和垂直梯度特征,包括:
[0147] 确定所述M1个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M1个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;
[0148] 根据所述水平梯度加和值和水平梯度二次方加和值,确定所述第一图像的水平梯度特征;
[0149] 确定所述M1个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M1个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;
[0150] 根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述第一图像的垂直梯度特征。
[0151] 此处,需要说明的是,确定所述第一图像的水平梯度特征和垂直梯度特征之间并无严格的时序。
[0152] 本实施例中,对所述M1个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度时,可以启用GPU设备中空闲的线程块调用对应的归一化核函数来并行对所述M1个像素块中所有像素的水平梯度和垂直梯度进行归一化处理,线程块中的一个线程对应一个像素,从而提高归一化处理的速度。
[0153] 本实施例中,针对第一图像,可以启用GPU设备中空闲的线程块来执行上述确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值时,比如,在确定归一化水平梯度、归一化垂直梯度之后,启用空闲的线程块中的四个线程来调用预先封装的图像梯度特征计算核函数并行确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值,从而进一步提高了第一图像的梯度特征计算速度。
[0154] 本实施例中,针对第一图像,可以参照上述公式(3)(4),计算水平梯度特征和垂直梯度特征。
[0155] 此处,需要说明的是,由于步骤S204的数据计算量相对于步骤S202的数据计算量已经大大减少,在其他实施例中,也可以不限定使用GPU设备中的线程块来执行,比如也可以由CPU来执行。
[0156] S205、根据M2个像素块中像素的梯度,确定所述第二图像的梯度特征;
[0157] 对应地,所述步骤S205中,根据M2个像素块中像素的梯度,确定所述第二图像的梯度特征,包括:根据所述M2个像素块中所有像素的水平梯度和垂直梯度,确定所述第二图像的水平梯度特征和垂直梯度特征;
[0158] 本实施例中,根据所述M2个像素块中所有像素的水平梯度和垂直梯度,分别确定所述第二图像的水平梯度特征和垂直梯度特征,包括:对所述M1个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度;根据所述M1个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述第二图像的水平梯度特征和垂直梯度特征。
[0159] 本实施例中,所述对所述M2个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M2个像素块中所有像素的归一化水平梯度和归一化垂直梯度,包括:
[0160] 确定所述第二图像的平均水平梯度,并确定每个像素的水平梯度与所述平均水平梯度的差值,将每个像素的水平梯度与所述平均水平梯度的差值作为每个像素的归一化水平梯度;
[0161] 确定所述第二图像的平均垂直梯度,并确定每个像素的垂直梯度与所述平均垂直梯度的差值,将每个像素的垂直梯度与所述平均垂直梯度的差值作为每个像素的归一化垂直梯度。
[0162] 具体地,本实施例中,求取所述第二图像中所有像素的水平梯度的均值,以作为所述第二图像的平均水平梯度;求取所述第二图像中所有像素的垂直梯度的均值,以作为所述第二图像的平均垂直梯度。
[0163] 本实施例中,根据所述M2个像素块中所有像素的归一化水平梯度和归一化垂直梯度,分别确定所述第二图像的水平梯度特征和垂直梯度特征,包括:
[0164] 确定所述M2个像素块中所有像素的归一化水平梯度的水平梯度加和值以及所述M2个像素块中所有像素的归一化水平梯度平方的水平梯度二次方加和值;
[0165] 根据所述水平梯度加和值和水平梯度二次方加和值,确定所述第二图像的水平梯度特征;
[0166] 确定所述M2个像素块中所有像素的归一化垂直梯度的垂直梯度加和值以及所述M2个像素块中所有像素的归一化垂直梯度平方的垂直梯度二次方加和值;
[0167] 根据所述垂直梯度加和值和垂直梯度二次方加和值,确定所述第二图像的垂直梯度特征。
[0168] 此处,需要说明的是,确定所述第二图像的水平梯度特征和垂直梯度特征之间并无严格的时序。
[0169] 本实施例中,对所述M2个像素块中每个像素的水平梯度和垂直梯度分别进行归一化处理,得到所述M2个像素块中所有像素的归一化水平梯度和归一化垂直梯度时,可以启用GPU设备中空闲的线程块调用对应的归一化核函数来并行对所述M2个像素块中所有像素的水平梯度和垂直梯度进行归一化处理,线程块中的一个线程对应一个像素,从而提高归一化处理的速度。
[0170] 本实施例中,针对第二图像,可以启用GPU设备中空闲的线程块来执行上述确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值时,比如,在确定归一化水平梯度、归一化垂直梯度之后,启用空闲的线程块中的四个线程来调用预先封装的图像梯度特征计算核函数并行确定上述水平梯度加和值、水平梯度二次方加和值、垂直梯度加和值、垂直梯度二次方加和值,从而进一步提高了第二图像的梯度特征计算速度。
[0171] 本实施例中,针对第二图像,可以参照上述公式(3)(4),计算水平梯度特征和垂直梯度特征。
[0172] 此处,需要说明的是,由于步骤S205的数据计算量相对于步骤S203的数据计算量已经大大减少,在其他实施例中,也可以不限定使用GPU设备中的线程块来执行,比如也可以由CPU来执行。
[0173] S206、根据所述第一图像的梯度特征以及所述第二图像的梯度特征,确定所述第一图像和第二图像之间的相似度。
[0174] 在上述实施例的基础上,所述根据所述M1个像素块中所有像素的水平梯度和垂直梯度,确定所述第一图像的水平梯度特征和垂直梯度特征之后,包括:所述第一图像的水平梯度特征和垂直梯度特征分别存储到第一水平梯度特征空间和第一垂直梯度特征空间中;
[0175] 在上述实施例的基础上,所述根据所述M2个像素块中所有像素的水平梯度和垂直梯度,确定所述第二图像的水平梯度特征和垂直梯度特征,包括:将所述第二图像的水平梯度特征和垂直梯度特征分别存储到第二水平梯度特征空间和第二垂直梯度特征空间中。
[0176] 具体地,所述根据所述第一图像的梯度特征以及所述第二图像的梯度特征,确定所述第一图像和第二图像之间的相似度,包括:
[0177] 根据所述第一图像的水平梯度特征和第二图像的水平梯度特征,确定所述第一图像和第二图像之间的水平梯度特征相关值;
[0178] 根据所述第一图像的垂直梯度特征和第二图像的垂直梯度特征,确定所述第一图像和第二图像之间的垂直梯度特征相关值;
[0179] 根据所述第一图像和第二图像之间的水平梯度特征相关值以及所述第一图像和第二图像之间的垂直梯度特征相关值,确定所述第一图像和第二图像之间的梯度互相关值。
[0180] 具体地,所述方法还包括:将所述第一图像和第二图像之间的水平梯度特征相关值存储到水平梯度特征相关值空间中;将所述第一图像和第二图像之间的垂直梯度特征相关值存储到垂直梯度特征相关值空间中,以确定所述第一图像和第二图像之间的梯度互相关值时,从所述水平梯度特征相关值空间读取所述第一图像和第二图像之间的水平梯度特征相关值,以及从所述垂直梯度特征相关值空间读取所述第一图像和第二图像之间的垂直梯度特征相关值。
[0181] 具体地,可参见上述公式(3)(4)分别得到第一图像的水平梯度特征Gx1和垂直梯度特征Gy1,以及第二图像的水平梯度特征Gx2和垂直梯度特征Gy2,则所述第一图像和第二图像之间的水平梯度特征相关值Gx12=Gx1*Gx2,所述第一图像和第二图像之间的垂直梯度特征相关值Gy12=Gy1*Gy2。
[0182] 进一步,由于此处,是综合了水平和垂直方向上的梯度,因此,所述第一图像和第二图像之间的梯度互相关值G=(Gx12+Gy12)/2。
[0183] 另外,上述实施例中,步骤S204和S205之间并无严格时序限制,比如如果GPU设备的线程资源满足,可以并行执行。
[0184] 或者,步骤S203和S204作为一组步骤、步骤S204和S205作为一组步骤,比如如果GPU设备的线程资源满足,这两组步骤并行执行。
[0185] 图3为本申请实施例一种图像融合方法流程示意图;如图3所示,其包括:
[0186] S301、获取第一图像和第二图像之间的相似度;
[0187] 所述相似度比如通过本申请图2实施例所述的方法确定。
[0188] S302、响应于所述相似度满足设定的相似度函数,对所述第一图像和第二图像进行融合处理。
[0189] 本实施例中,所述第一图像比如为术前三维CT源图像对应的二维投影图像,第二图像为X‑RAY图像。
[0190] 具体地,比如,将前后两次计算的相似度作为相似度函数的自变量,确定这两个相似度之间的差异,如果差异满足设定的阈值,则不再调整上述图像变换矩阵,如果上述基于参与后一次相似度计算的二维投影图像达到了与X‑RAY图像具有尽可能相似像素值的情形,即满足了将二维投影图像融合到X‑RAY图像中,得到融合图像以将在所述术前CT图像上的手术规划映射到所述X‑RAY图像上。
[0191] 图4为本申请实施例一种图像中梯度特征的确定装置的结构示意图;如图4所示,其包括:
[0192] 线程块确定单元401,用于确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块;
[0193] 其中,所述第i个像素块包括N个像素,所述第一目标线程块包括N个线程,N大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i≤M,M为所述目标图像包括的像素块的总量,M≥1且为整数;
[0194] 梯度计算单元402,用于针对所述第i个像素块,所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度,以计算出M个像素块中像素的梯度,其中,一个线程针对一个像素;
[0195] 梯度特征确定单元403,用于根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征。
[0196] 可选地,所述线程块确定单元401具体用于:根据预先建立的像素块和线程块之间的索引关系,确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块。
[0197] 可选地,所述图像中梯度特征的确定装置还包括:关系确定单元,用于在所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度之前,根据预先建立的线程和像素之间的索引关系,确定每个线程与每个像素之间的处理关系,以使得所述N个线程调用预先封装的像素梯度特征计算核函数并行计算所述N个像素的梯度。
[0198] 可选地,所述梯度计算单元402具体用于所述N个线程调用预先封装的像素梯度特征计算核函数对所述N个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N个像素的水平梯度和垂直梯度;
[0199] 所述梯度特征确定单元403具体用于:根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征。
[0200] 可选地,所述梯度特征确定单元403具体用于在所述根据所述M个像素块中所有像素的水平梯度和垂直梯度,分别确定所述目标图像的水平梯度特征和垂直梯度特征之后,将所述目标图像的水平梯度特征和垂直梯度特征分别存储在水平梯度特征空间和垂直梯度特征空间中。
[0201] 可选地,所述图像中梯度特征的确定装置包括:图像重建单元,用于在确定GPU设备中对目标图像中第i个像素块进行处理时可用的第一目标线程块之前,对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述目标图像。
[0202] 可选地,所述图像重建单元具体用于基于图像变换矩阵,对所述术前三维CT源图像进行图像变换得到术前三维CT校正图像;对所述术前三维CT校正图像进行投影处理生成二维投影图像。
[0203] 可选地,所述图像中梯度特征的确定装置还包括:图像确定单元,用于将所述术前三维CT源图像作为浮动图像,并将其对应的术中X‑RAY图像作为固定图像;
[0204] 所述图像重建单元还用于在根据M个像素块中所有像素的梯度,确定所述目标图像的梯度特征之后,根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像。
[0205] 可选地,所述图像重建单元还用于根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,计算所述二维投影图像和所述固定图像的相似度;以及根据所述相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像。
[0206] 可选地,所述图像重建单元还用于在根据所述二维投影图像的梯度特征和所述固定图像的梯度特征,对所述图像变换矩阵进行调整,以重新生成二维投影图像之前,对所述固定图像进行标定,以使得所述固定图像的尺寸与所述二维投影图像的尺寸相等且所述固定图像与所述二维投影图像中每两个对应像素具有相同的物理位置信息。
[0207] 图5为本申请实施例一种图像间相似度的确定装置的结构示意图;如图5所示,其包括:
[0208] 线程块确定单元501,用于确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块;
[0209] 其中,所述第i1个像素块包括N1个像素,所述第一目标线程块包括N1个线程,所述第i2个像素块包括N2个像素,所述第二目标线程块包括N2个线程,N1、N2大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i1≤M1,1≤i2≤M1,M1为所述第一图像包括的像素块的总量,M1≥1且为整数,M2为所述第二图像包括的像素块的总量,M2≥1且为整数;
[0210] 第一梯度计算单元502,用于针对所述第i1个像素块,所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度,其中,一个线程针对一个像素;
[0211] 第二梯度计算单元503,用于针对所述第i2个像素块,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度,其中,一个线程针对一个像素;
[0212] 第一梯度特征确定单元504,用于根据M1个像素块中像素的梯度,确定所述第一图像的梯度特征;
[0213] 第二梯度特征确定单元505,用于根据M2个像素块中像素的梯度,确定所述第二图像的梯度特征;
[0214] 相似度确定单元506,用于根据所述第一图像的梯度特征以及所述第二图像的梯度特征,确定所述第一图像和第二图像之间的相似度。
[0215] 具体地,所述线程块确定单元501具体用于:根据预先建立的像素块和线程块之间的索引关系,确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块。
[0216] 可选地,所述图像间相似度的确定装置还包括:关系确定单元,用于根据预先建立的线程和像素之间的索引关系,确定每个线程与每个像素之间的处理关系,以使得所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以及所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度。
[0217] 可选地,所述第一梯度计算单元502具体用于:所述N1个线程调用预先封装的像素梯度特征计算核函数对所述N1个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N1个像素的水平梯度和垂直梯度;
[0218] 对应地,所述第一梯度特征确定单元504具体用于:根据所述M1个像素块中所有像素的水平梯度和垂直梯度,确定所述第一图像的水平梯度特征和垂直梯度特征;
[0219] 可选地,所述第二梯度计算单元503具体用于:所述N2个线程调用预先封装的像素梯度特征计算核函数对所述N2个像素并行进行水平方向和垂直方向的边缘检测,以计算所述N2个像素的水平梯度和垂直梯度;
[0220] 对应地,所述第二梯度特征确定单元505具体用于根据所述M2个像素块中所有像素的水平梯度和垂直梯度,确定所述第二图像的水平梯度特征和垂直梯度特征。
[0221] 可选地,所述第一梯度特征确定单元504还用于在根据所述M1个像素块中所有像素的水平梯度和垂直梯度,确定所述第一图像的水平梯度特征和垂直梯度特征之后,将所述第一图像的水平梯度特征和垂直梯度特征分别存储到第一水平梯度特征空间和第一垂直梯度特征空间中;
[0222] 可选地,所述第二梯度特征确定单元505还用于将所述第二图像的水平梯度特征和垂直梯度特征分别存储到第二水平梯度特征空间和第二垂直梯度特征空间中。
[0223] 可选地,所述相似度确定单元506具体用于:根据所述第一图像的水平梯度特征和第二图像的水平梯度特征,确定所述第一图像和第二图像之间的水平梯度特征相关值;根据所述第一图像的垂直梯度特征和第二图像的垂直梯度特征,确定所述第一图像和第二图像之间的垂直梯度特征相关值;以及根据所述第一图像和第二图像之间的水平梯度特征相关值以及所述第一图像和第二图像之间的垂直梯度特征相关值,确定所述第一图像和第二图像之间的梯度互相关值。
[0224] 可选地,所述相似度确定单元506还用于将所述第一图像和第二图像之间的水平梯度特征相关值存储到水平梯度特征相关值空间中;将所述第一图像和第二图像之间的垂直梯度特征相关值存储到垂直梯度特征相关值空间中,以确定所述第一图像和第二图像之间的梯度互相关值时,从所述水平梯度特征相关值空间读取所述第一图像和第二图像之间的水平梯度特征相关值,以及从所述垂直梯度特征相关值空间读取所述第一图像和第二图像之间的垂直梯度特征相关值。
[0225] 可选地,所述图像间相似度的确定装置还包括:图像重建单元,用于在确定GPU设备中对第一图像中第i1个像素块进行处理时可用的第一目标线程块,以及对第二图像中第i2个像素块进行处理时可用的第二目标线程块之前,对术前三维CT源图像进行图像重建生成二维投影图像,并将所述二维投影图像作为所述第一图像。
[0226] 可选地,所述图像重建单元具体用于:基于图像变换矩阵,对所述术前三维CT源图像进行图像变换得到术前三维CT校正图像;以及对所述术前三维CT校正图像进行投影处理生成二维投影图像。
[0227] 可选地,所述第二图像为所述术前三维CT源图像对应的术中X‑RAY图像,所述图像间相似度的确定装置还包括:图像确定单元,用于将所述术前三维CT源图像作为浮动图像,并将所述X‑RAY图像作为固定图像;
[0228] 可选地,所述图像重建单元具体还用于在根据所述第一图像的梯度特征以及所述第二图像的梯度特征,确定所述第一图像和第二图像之间的相似度之后,根据所述二维投影图像和所述固定图像的相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像。
[0229] 可选地,所述图像重建单元具体还用于在根据所述二维投影图像和所述固定图像的相似度,对所述图像变换矩阵进行调整,以重新生成二维投影图像之前,对所述固定图像进行标定,以使得所述固定图像的尺寸与所述二维投影图像的尺寸相等且所述固定图像与所述二维投影图像中每两个对应像素具有相同的物理位置信息。
[0230] 图6为本申请实施例一种图像融合装置的结构示意图;如图6所示,其包括:
[0231] 相似度获取单元601,用于获取第一图像和第二图像之间的相似度;
[0232] 其中,所述相似度通过本申请实施例任一项所述的方法确定;
[0233] 图像融合单元602,用于响应于所述相似度满足设定的相似度函数,对所述第一图像和第二图像进行融合处理生成融合图像。
[0234] 本申请实施例一种电子设备的结构示意图;所述电子设备包括:处理器、存储器,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行本申请实施例任意一项所述的方法。
[0235] 图7为本申请实施例一种电子设备的具体硬件结构示意图;如图7所示,该电子设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
[0236] 其中:
[0237] 处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
[0238] 通信接口704,用于与其它电子设备或服务器进行通信。
[0239] 处理器702,用于执行程序710,具体可以执行上述校验码生成方法实施例中的相关步骤。
[0240] 具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
[0241] 处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0242] 存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0243] 程序710具体可以用于使得处理器702执行本申请上述任一实施例所述的方法。
[0244] 程序710中各步骤的具体实现可以参见方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0245] 本申请实施例还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请实施例任意一项所述的方法。
[0246] 本申请实施例还提供一种脊柱手术机器人,其包括GPU设备,所述GPU设备用于执行如下步骤:
[0247] 确定GPU设备中对术前三维CT源图像的二维投影图像中第i1个像素块进行处理时可用的第一目标线程块,以及对X‑RAY图像中第i2个像素块进行处理时可用的第二目标线程块,其中,所述第i1个像素块包括N1个像素,所述第一目标线程块包括N1个线程,所述第i2个像素块包括N2个像素,所述第二目标线程块包括N2个线程,N1、N2大于等于2且小于等于所述GPU设备单次运行支持的最大线程数,1≤i1≤M1,1≤i2≤M1,M1为所述术前三维CT源图像的二维投影图像包括的像素块的总量,M1≥1且为整数,M2为所述X‑RAY图像包括的像素块的总量,M2≥1且为整数;
[0248] 针对所述第i1个像素块,所述N1个线程调用预先封装的像素梯度特征计算核函数并行计算所述N1个像素的梯度,以计算出M1个像素块中像素的梯度,其中,一个线程针对一个像素;
[0249] 针对所述第i2个像素块,所述N2个线程调用预先封装的像素梯度特征计算核函数并行计算所述N2个像素的梯度,以计算出M2个像素块中像素的梯度,其中,一个线程针对一个像素;
[0250] 根据M1个像素块中像素的梯度,确定所述术前三维CT源图像的二维投影图像的梯度特征;
[0251] 根据M2个像素块中像素的梯度,确定所述X‑RAY图像的梯度特征;
[0252] 根据所述术前三维CT源图像的二维投影图像的梯度特征以及所述X‑RAY图像的梯度特征,确定所述术前三维CT源图像的二维投影图像和X‑RAY图像的相似度;
[0253] 响应于所述相似度满足设定的相似度函数,对所述术前三维CT源图像和X‑RAY图像进行融合处理得到融合图像以将在所述术前CT图像上的手术规划映射到所述X‑RAY图像上。
[0254] 上述实施例中,所述GPU设备的数量可以有多个,因此,多个GPU设备可以并行执行上述实施例的方案。
[0255] 另外,在具体实施时,通过初始化过程调用cudaGetDeviceCoun函数,获取可用的GPU设备数量。另外,在上述计算图像的梯度特征、图像间的相似度、图像融合时,需要不断调整图像变换矩阵,因此导致进行多次相似度的计算,增加免初始化声明,以只在首次执行上述方案计算相似度或者图像的梯度特征时实施上述初始化,当调整完图像变换矩阵,再次计算相似度或者图像的梯度特征、图像融合时,无须上述初始化过程,从而加快了计算的速度。
[0256] 上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的校验码生成方法。此外,当通用计算机访问用于实现在此示出的校验码生成方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的校验码生成方法的专用计算机。
[0257] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
[0258] 以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。