本发明涉及计算机图像处理,具体而言,涉及一种体素处理方法、装置、电子设备及存储介质。
背景技术:
1、体素是表示三维图像的基本数据格式,在计算机图形学、医学成像等多种领域中均有应用。现有技术中,使用链表来表示体素的存储,当多线程同时读写同一位置的体素时,必须进行加锁处理,造成体素处理效率低下。
技术实现思路
1、有鉴于此,本发明实施例的目的在于,提供一种体素处理方法、装置、电子设备及存储介质以至少部分地改善上述问题。
2、为了实现上述目的,本发明实施例采用的技术方案如下:
3、第一方面,本发明实施例提供了一种体素处理方法,包括:
4、获得待处理的至少一个体素;
5、根据待处理的体素的数量,确定待处理的所有体素所需的存储空间大小,并申请所述存储空间大小的内存空间;所述内存空间用于存储待处理的所有体素;
6、计算待处理的每个体素在所述内存空间中的存储位置;
7、针对待处理的每个体素,根据所述体素的存储位置计算得到所述体素的比特位;所述比特位包括所述比特位的地址偏移量和所述比特位的比特偏移量;以所述地址偏移量和所述比特偏移量来表征体素的存储地址。
8、可选地,各所述体素位于世界坐标系中的包围盒中,所述体素处理方法还包括:
9、基于所述世界坐标系中的包围盒和体素大小,获得第一体素数量、第二体素数量和第三体素数量;所述第一体素数量为包围盒x轴向上的体素数量,所述第二体素数量为包围盒y轴向上的体素数量,所述第三体素数量为包围盒z轴向上的体素数量;
10、通过所述第一体素数量、所述第二体素数量和所述第三体素数量相乘,获得待处理的体素的数量。
11、可选地,每个体素在所述内存空间中的存储位置基于以下方程表达式得到:
12、pos(xk,yk,zk)=yk+xk*cellnumy+zk*cellnumy*cellnumx
13、其中,xk为所述体素在所述世界坐标中x轴向上的坐标,yk为所述体素在所述世界坐标中y轴上的坐标,zk为所述体素在所述世界坐标中z轴向上的坐标,cellnumx为所述第一体素数量,cellnumy为所述第二体素数量。
14、可选地,所述针对待处理的每个体素,根据所述体素的存储位置计算得到所述体素的比特位的步骤包括:
15、计算所述比特位的地址偏移量为:floor(pos(xk,yk,zk)/8);
16、计算所述比特位的比特偏移量为:pos(xk,yk,zk)%8。
17、可选地,所述体素包括在所述比特位处的存在性,所述存在性表征所述体素是否显示,所述体素处理方法还包括:
18、当接收到修改所述体素为显示的指令时,对所述体素的所述地址偏移量与所述比特偏移量的掩码做或运算;
19、当接收到修改所述体素为不显示的指令时,对所述体素的所述地址偏移量与所述比特偏移量的掩码做非运算。
20、可选地,所述根据待处理的体素的数量,确定待处理的所有体素所需的存储空间大小的步骤包括:
21、通过用待处理的体素的数量除以8,得到待处理的所有体素所需的所述存储空间大小。
22、可选地,所述体素处理方法还包括:
23、通过三维扫描实体,获得实体的网格;所述网格包括多个顶点和连接这些顶点的边构成的图元;
24、利用图像处理器多线程对所述网格中图元进行运算,计算出所有的体素。
25、第二方面,本发明实施例提供了一种体素处理装置,所述体素处理装置包括:
26、体素获取单元,用于获得待处理的至少一个体素;
27、内存空间申请单元,用于根据待处理的体素的数量,确定待处理的所有体素所需的存储空间大小,并申请所述存储空间大小的内存空间;所述内存空间用于存储待处理的所有体素;
28、存储位置计算单元,用于计算待处理的每个体素在所述内存空间中的存储位置;
29、比特位计算单元,用于针对待处理的每个体素,根据所述体素的存储位置计算得到所述体素的比特位;所述比特位包括所述比特位的地址偏移量和所述比特位的比特偏移量;以所述地址偏移量和所述比特偏移量来表征体素的存储地址。
30、第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的方法。
31、第四方面,本发明实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
32、本发明实施例提供了一种体素处理方法、装置、电子设备及存储介质,通过获取待处理的体素,根据待处理的体素数量,计算出所有体素所需的存储空间,并申请相应的内存空间,根据公式计算每个体素在内存空间中存储位置,根据存储位置计算得到每个体素的比特位,比特位包括地址偏移量和比特偏移量,并以此表示体素的存储地址,从而能在图像处理器多线程读写体素信息时对每个体素进行原子操作,不用加锁,提高了体素的处理能力。
1.一种体素处理方法,其特征在于,包括:
2.根据权利要求1所述的体素处理方法,其特征在于,各所述体素位于世界坐标系中的包围盒中,所述体素处理方法还包括:
3.根据权利要求2所述的体素处理方法,其特征在于,每个体素在所述内存空间中的存储位置基于以下方程表达式得到:
4.根据权利要求3所述的体素处理方法,其特征在于,所述针对待处理的每个体素,根据所述体素的存储位置计算得到所述体素的比特位的步骤包括:
5.根据权利要求1所述的体素处理方法,其特征在于,所述体素包括在所述比特位处的存在性,所述存在性表征所述体素是否显示,所述体素处理方法还包括:
6.根据权利要求1所述的体素处理方法,其特征在于,所述根据待处理的体素的数量,确定待处理的所有体素所需的存储空间大小的步骤包括:
7.根据权利要求1所述的体素处理方法,其特征在于,所述体素处理方法还包括:
8.一种体素处理装置,其特征在于,所述体素处理装置包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。