【技术实现步骤摘要】
基于CUDA并行计算框架的实时交互式裸眼3D显示方法
本专利技术涉及一种基于CUDA并行计算框架的实时交互式裸眼3D显示方法。
技术介绍
医学图像三维可视化作为体数据场可视化的过程,是科学可视化领域研究的重点,同时也是其目前研究与应用最成功的领域。经过近些年的发展,已经从辅助诊断发展为辅助治疗的重要手段,并将深入到医学的各个领域。当前医生在对患者进行诊断的过程中,需要借助医学影像学来进行判断。与此同时,现阶段所获得的二维图像,本身并无法直观表示组织器官的情况,需要医生借助想象力的还原,具有极大的主观性,其中更是有些信息是医生无法准确获取的,这本身不仅给医生造成了负担,而且增大了错误判断的可能。而与此相对,三维可视化则直观、真实、全面地表现了区域的信息,有利于医生对病情的深入理解,以及在此基础上的分析与判断。目前三维可视化一般都是通过电子显示屏幕等二维平面显示,相比于传统的二维平面显示,立体显示能够提供给观看者更接近于真实世界的视觉感受,而自由立体显示摆脱了助视设备的束缚,成为了当前立体显示领域的研究热点。随着立体显示技术的不断发展,已经有多种技术可用于实现立体显示,它们可以不通过任何工具就能让左右眼睛从视屏幕上看到两幅具有视差的,有所区别的画面,将它们反射到大脑,人就会产生立体感。当前存在的解决方案中,主要采用了以下方案。即离线制作好的视频素材,也就是预先处理每帧图像,将选取像素并融合的多帧图像最终合成视频,最终在自由立体显示设备上播放。这样的方案存在操作繁琐,播放内容不能实时更改等局限。
技术实现思路
本专利技术的目的是提供一种基于CUDA并行计算框架的实时 ...
【技术保护点】
1.一种基于CUDA并行计算框架的实时交互式裸眼3D显示方法,其特征在于:包括以下步骤,S1、读取CT序列图像,设置绘制阈值,利用MarchingCube算法生成三角面片数据;具体为,选择读入数据的格式,并对读入的数据进行数据解析,完成数据文件的读入操作,设置窗宽与窗位值;设置MarchingCube算法生成等值面的阈值,利用MarchingCube算法生成三角面片数据;S2、根据使用场景设置视点个数、虚拟摄像机位;具体为,设置融合图像的视点个数参数N、视点间隔角度delta,调用OpenGL API gluLookAt函数和gluPerspective函数,在以原点为中心点,半径为R的弧上根据视点个数N且每相隔角度delta摆放N个虚拟摄像机,且使虚拟摄像机阵列以xoz面对称,其中每个虚拟摄像机的光轴为该位置到原点确定的方向向量,虚拟摄像机的法线方向为坐标轴z的正方向,设置渲染窗口分辨率、目标表面材质、光源类型和位置,针对每个虚拟摄像机,对步骤S1中得到的三角面片数据使用OpenGL固定管线渲染生成单角度渲染场景图,记为I1,I2,…IN;S3、利用OpenInventor开源库,分 ...
【技术特征摘要】
1.一种基于CUDA并行计算框架的实时交互式裸眼3D显示方法,其特征在于:包括以下步骤,S1、读取CT序列图像,设置绘制阈值,利用MarchingCube算法生成三角面片数据;具体为,选择读入数据的格式,并对读入的数据进行数据解析,完成数据文件的读入操作,设置窗宽与窗位值;设置MarchingCube算法生成等值面的阈值,利用MarchingCube算法生成三角面片数据;S2、根据使用场景设置视点个数、虚拟摄像机位;具体为,设置融合图像的视点个数参数N、视点间隔角度delta,调用OpenGLAPIgluLookAt函数和gluPerspective函数,在以原点为中心点,半径为R的弧上根据视点个数N且每相隔角度delta摆放N个虚拟摄像机,且使虚拟摄像机阵列以xoz面对称,其中每个虚拟摄像机的光轴为该位置到原点确定的方向向量,虚拟摄像机的法线方向为坐标轴z的正方向,设置渲染窗口分辨率、目标表面材质、光源类型和位置,针对每个虚拟摄像机,对步骤S1中得到的三角面片数据使用OpenGL固定管线渲染生成单角度渲染场景图,记为I1,I2,…IN;S3、利用OpenInventor开源库,分别针对每个不同视点的场景,实施纹理渲染;具体为,调用OpenGLAPI,使用glGenBuffers、glBindBuffer和glBufferData三个函数在显存中开辟数据空间PixBufferi即纹理数组,记屏幕横向像素个数为Xω,纵向像素个数为Yω,则其中每块区域所占大小为Xω×Yω×3比特,利用渲染到纹理接口,将单角度渲染场景图以纹理对象的形式保存到纹理显存中;记为场景纹理T1,T2,…TN;S4、实现CUDA并行化像素融合算法,具体为:根据步骤S3中所述屏幕像素个数设置CUDA线程块大小,线程块中的每一个线程,用于计算对应像素颜色通道所属场景纹理编号,根据编号从步骤S3所述场景纹理中提取对应颜色通道值,填充至屏幕缓冲区对象中,完成所有像素通道填充后将屏幕缓冲区对象输出至屏幕显示;S5、实现交互接口;具体为,自定义消息回调函数,针对交互时键盘鼠标发出的消息,进行相应的处理,以响应来自用户的交互请求。2.如权利要求1所述的基于CUDA并行计算框架的实时交互式裸眼3D显示方法,其特征在于:步骤S1中利用MarchingCube算法生成三角面片数据具体为,S11、根据对称关系构建一个具有256种相交关系的索引表IndexTable,该索引表IndexTable指明等值面与体素的边的相交关系,具体来说,该索引表IndexTable中每一行有16列值,取值为-1时表示与体素的边无交点,其中最后一列例外,取值为-1时表示结束符号;若存在交点,则取值为交点所在边的索引值,这样将体素中等值面三角化的每个三角形的交点所在边索引值存入,最多会形成5个三角形,最后一位取-1表示结束标志,故索引表IndexTable的每行有16列;S12、提取相邻两层图片中相邻的8个像素,构成一个体素并把这8个像素编号,取值从0至7,作为它们所在的位;S13、根据每个像素与阈值的比较确定该像素是1还是0,具...
【专利技术属性】
技术研发人员:胡轶宁,谢理哲,郑涛,张宇宁,王征,
申请(专利权)人:东南大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。