技术领域
[0001] 本
发明涉及模拟成像领域,具体地,涉及一种基于Unity3D采集数据的模拟成像方法,尤其是一种基于Unity3D人体医学CT数据模拟骨骼X光成像的方法。
背景技术
[0002] 在CT等检查中使用的X光,和可见光一样,都是一种电磁
辐射,但是它们具有较高的穿透能
力并且可以穿过人体。通过使用适当的装置和技术,X光可以用来观察身体内部结构,并生成图像来检查
疾病或其他问题。在大多数X光检查中,无论传统技术还是现代的数码检查设备中,所用到
辐射剂量都相当小。需要注意的是减少不必要的重复检查,同时慎重对待高辐射剂量的检查,如CT和介入性手术,因为高辐射检查会提升相关癌症的
风险。如何以相对简单便捷的方式去获得CT数据对骨骼X光的模拟成像无疑是亟需解决的技术问题。
[0003]
专利文献109223016A公开了一种CT成像方法,包括如下步骤:S1,利用
X射线对成像物进行扫描,获取初始投影数据,所述初始投影数据包括至少一个成像几何参数的数据;S2,对所述至少一个成像几何参数进行参数
采样并逐次进行模拟CT投影,以获取对应的一系列模拟CT投影数据;S3,在所述一系列模拟CT投影数据中寻找到与所述初始投影数据最接近的两个模拟CT投影数据;S4,通过差值
算法计算获得所述至少一个成像几何参数的更新值;S5,基于所述至少一个成像几何参数的更新值,进行图像重建,获得所述成像物的CT
断层图像;S6,评价所述CT断层图像,若符合要求,则输出结果;若不符合要求,则返回至步骤S2重新执行。该专利无法将对骨骼轮廓细节表现更加清晰,需要考虑人体各个组织对放射衰减系数的不同,不能以相对简单便捷的方式去获得CT数据对骨骼X光的模拟成像,不能方便医生从各个方位去观察病人的X光图像,不能有效减少病人受到的辐射量。
发明内容
[0004] 针对
现有技术中的
缺陷,本发明的目的是提供一种基于Unity3D采集数据的模拟成像方法。
[0005] 根据本发明提供的一种基于Unity3D采集数据的模拟成像方法,包括:建模步骤:根据采集数据,获取采集数据集;通过采集数据集生成以下任一个或者任多个模型:-立方体;-Unity3D中的Texture3D;采集
像素点步骤:立方体的坐标映射到Texture3D里从而生成像素点;利用光线追踪采样像素点信息;拟合成像步骤:根据像素点信息,获取采样像素点信息;综合处理采样像素点信息,获取成像信息,从而以达到近似X光的效果。
[0006] 优选地,建模步骤包括:第一读取Dicom文件步骤:根据采集数据集的Dicom文件的Tag,获取生成立方体相关参数;第二读取Dicom文件步骤:根据采集数据集的有效dicom文件数,获取断层图数量参数;所述生成立方体相关参数包括:像素列数参数、像素行数参数、像素间距参数、以及图间间距参数。
[0007] 优选地,建模步骤还包括:获取立方体实际尺寸步骤:根据生成立方体相关参数、断层图数量参数,获取立方体实际尺寸参数。
[0008] 优选地,像素间距参数包括:像素间距行参数和像素间距列参数;所述立方体实际尺寸参数包括:立方体实际长度参数、立方体实际宽度参数以及立方体实际高度参数。
[0009] 优选地,建模步骤还包括:存放数据步骤:在Unity中创建特定尺寸的Texture3D;在CPU内存中
声明特定长度的Color数组;读取采集数据集中灰度值参数,将灰度值参数存放于Color数组中;将存放于Color数组中的灰度值参数应用到Texture3D。
[0010] 优选地,采集像素点步骤包括:坐标映射步骤:获取立方体
姿态矩阵的逆参数,在光线中,将所述立方体姿态矩阵的逆参数空间中的点转换到立方体的本地坐标下;Texture3D像素采集步骤:根据存放于Color数组中的灰度值,获取灰度最大值参数或者灰度最小值参数;采集自定义步骤:根据采集步长参数、成像
亮度参数,获取采集步长信息、像素亮度系数信息。
[0011] 优选地,采集像素点步骤还包括:输出到平面片元步骤:生成特定平面;根据采集步长信息,利用光线追踪算法,以当前观察的
位置作为光线发射的起点,特定平面上的片元到起点的方向作为光线发射方向,将当前光线穿过立方体的部分按特定步长采集,输出到平面的片元上。
[0012] 优选地,拟合成像步骤还包括:空间转换步骤:将平面当前片元的位置由模型本地空间转换到世界空间,获取
光源在世界空间中的位置,再将光源以及片元都转换到立方体的模型空间下;判断相交步骤:判断光线与立方体的位置关系状态,获得判断相交信息或者判断不相交信息;近、远点采集步骤:根据判断相交信息,得到光线与立方体相交的交点信息;所述交点信息包括:近点信息和远点信息;根据采集步长信息,将交集从近点按特定采集步长取到的点的三维坐标向Texture3D持续采样,得到灰度值集合参数,直到超出远点结束;
[0013] 优选地,拟合成像步骤还包括:归一化步骤:根据灰度值集合参数、灰度最大值参数、灰度最小值参数以及
阈值参数,获取灰度值归一化参数;加权步骤:灰度值归一化参数按越接近光源的权重越大的方式
叠加处理,获取灰度值归一化加权参数;最后输出步骤:根据灰度值归一化加权参数、采集亮度系数,获取最终输出信息。
[0014] 优选地,所述采集数据为CT数据,所述采集数据集为CT数据集;所述光线为GPU光线。
[0015] 与现有技术相比,本发明具有如下的有益效果:
[0016] 1、本发明以相对简单便捷的方式去获得CT数据对骨骼X光的模拟成像,不需要考虑的人体各个组织对放射衰减系数的不同,运算量相对较小;
[0017] 2、本发明中由于
渲染几乎只针对骨骼,所以对骨骼轮廓细节表现的也更加清晰;
[0018] 3、本发明方便医生从各个方位去观察病人的X光图像,减少病人受到的辐射量,可以术中利用X光与术前CT数据配准。
附图说明
[0019] 通过阅读参照以下附图对非限制性
实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0021] 图2为本发明中的取样输出流程图。
具体实施方式
[0022] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
[0023] 根据本发明提供的一种基于Unity3D采集数据的模拟成像方法,包括:建模步骤:根据采集数据,获取采集数据集;通过采集数据集生成以下任一个或者任多个模型:-立方体;-Unity3D中的Texture3D;采集像素点步骤:立方体的坐标映射到Texture3D里从而生成像素点;利用光线追踪采样像素点信息;拟合成像步骤:根据像素点信息,获取采样像素点信息;综合处理采样像素点信息,获取成像信息,从而以达到近似X光的效果。
[0024] 本发明采用的技术方案总概:通过CT数据集生成一个立方体和unity的Texture3D,利用GPU光线追踪采样到的立方体的坐标映射到Texture3D里的像素点,再通过对光线上的像素集进行处理以达到近似X光的效果。
[0025] 建模步骤包括:第一读取Dicom文件步骤:根据采集数据集的Dicom文件的Tag,获取生成立方体相关参数;第二读取Dicom文件步骤:根据采集数据集的有效dicom文件数,获取断层图数量参数;所述生成立方体相关参数包括:像素列数参数、像素行数参数、像素间距参数、以及图间间距参数。建模步骤还包括:获取立方体实际尺寸步骤:根据生成立方体相关参数、断层图数量参数,获取立方体实际尺寸参数。具体地,在一个实施例中,生成立方体:在CT数据集的Dicom文件的Tag中我们可以读到以下信息:像素列数(Tag==Columns(0028,0011))(nx)、行数(Tag==Rows(0028,0010))(ny),像素间距(Tag==PixelSpacing(0028,0030)):列(dx)、行(dy),以及每张图之间的间距(Tag==SliceThickness(0018,0050))(dz)。在通过数据集的有效dicom文件数得到断层图数量(nz)。通过这些数据就可以得到立方体的实际尺寸,长(nx*dx(mm))、宽(ny*dy(mm))、高(nz*dz(mm))。
[0026] 像素间距参数包括:像素间距行参数和像素间距列参数;所述立方体实际尺寸参数包括:立方体实际长度参数、立方体实际宽度参数以及立方体实际高度参数。
[0027] 建模步骤还包括:存放数据步骤:在Unity中创建特定尺寸的Texture3D;在CPU内存中声明特定长度的Color数组;读取采集数据集中灰度值参数,将灰度值参数存放于Color数组中;将存放于Color数组中的灰度值参数应用到Texture3D。具体地,在一个实施例中,生成Texture3D:在unity中创建一个尺寸为nx*ny*nz的Texture3D,在CPU内存中声明一个长度为nx*ny*nz的Color数组存放CT数据集中读到的灰度值,将Color数组中的值应用到Texture3D。
[0028] 采集像素点步骤包括:坐标映射步骤:获取立方体姿态矩阵的逆参数,在光线中,将所述立方体姿态矩阵的逆参数空间中的点转换到立方体的本地坐标下;Texture3D像素采集步骤:根据存放于Color数组中的灰度值,获取灰度最大值参数或者灰度最小值参数;采集自定义步骤:根据采集步长参数、成像亮度参数,获取采集步长信息、像素亮度系数信息。具体地,在一个实施例中,CPU和GPU数据传递:立方体的姿态矩阵的逆(unity下的worldToLocalMatrix矩阵),在GPU中需要将空间中的点转换到立方体的本地坐标下。
Texture3D,像素采样需要CT数据灰度值的最大最小值,需要对采集到的像素值归一化。自定义变量采样步长,自定义变量成像亮度。
[0029] 采集像素点步骤还包括:输出到平面片元步骤:生成特定平面;根据采集步长信息,利用光线追踪算法,以当前观察的位置作为光线发射的起点,特定平面上的片元到起点的方向作为光线发射方向,将当前光线穿过立方体的部分按特定步长采集,输出到平面的片元上。
[0030] 拟合成像步骤还包括:空间转换步骤:将平面当前片元的位置由模型本地空间转换到世界空间,获取光源在世界空间中的位置,再将光源以及片元都转换到立方体的模型空间下;判断相交步骤:判断光线与立方体的位置关系状态,获得判断相交信息或者判断不相交信息;近、远点采集步骤:根据判断相交信息,得到光线与立方体相交的交点信息;所述交点信息包括:近点信息和远点信息;根据采集步长信息,将交集从近点按特定采集步长取到的点的三维坐标向Texture3D持续采样,得到灰度值集合参数,直到超出远点结束;
[0031] 拟合成像步骤还包括:归一化步骤:根据灰度值集合参数、灰度最大值参数、灰度最小值参数以及阈值参数,获取灰度值归一化参数;加权步骤:灰度值归一化参数按越接近光源的权重越大的方式叠加处理,获取灰度值归一化加权参数;最后输出步骤:根据灰度值归一化加权参数、采集亮度系数,获取最终输出信息。
[0032] 所述采集数据为CT数据,所述采集数据集为CT数据集;所述光线为GPU光线。
[0033] 具体地,在一个实施例中,在unity渲染平面的shader里编程,将平面当前片元的位置由模型本地空间转换到世界空间,获取光源在世界空间中的位置。再将光源以及片元都转换到立方体的模型空间下。计算光线与立方体是否相交,若相交,得到与立方体相交的两个交点:近点,远点。将交集从近点按一定的步长取到的点的三维坐标向Texture3D采样,得到灰度值,直到超出远点结束。通常人体骨骼的灰度值在150以上,我们将150以下的灰度值丢弃,150以上的灰度值归一化后按越接近光源的权重越大叠加,最后乘上一个亮度系数后输出。
[0034] 本发明以相对简单便捷的方式去获得CT数据对骨骼X光的模拟成像,不需要考虑的人体各个组织对放射衰减系数的不同,运算量相对较小;本发明中由于渲染几乎只针对骨骼,所以对骨骼轮廓细节表现的也更加清晰;本发明方便医生从各个方位去观察病人的X光图像,减少病人受到的辐射量,可以术中利用X光与术前CT数据配准。
[0035] 本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模
块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以
逻辑门、
开关、专用集成
电路、可编程逻辑
控制器以及嵌入式
微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种
硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的
软件模块又可以是硬件部件内的结构。
[0036] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在
权利要求的范围内做出各种变化或
修改,这并不影响本发明的实质内容。在不冲突的情况下,本
申请的实施例和实施例中的特征可以任意相互组合。