一种基于VTK的电磁体数据交互式可视分析方法技术

技术编号:22058161 阅读:35 留言:0更新日期:2019-09-07 16:17
本发明专利技术涉及一种基于VTK的电磁体数据交互式可视分析方法,利用VTK可视化工具包搭建了一个电磁体数据交互式可视分析系统。首先借助电磁体数据灰度统计直方图获得体数据灰度分布特征,并据此设定等值面的阈值、不透明度和颜色,实现多等值面的交互式设计,然后通过多角度切片功能使用户可以探索感兴趣平面的场强分布,接着为用户提供交互式标注功能使用户可将分析结果作为三维标记添加进渲染场景中,最后利用光照设计模块增强阴影效果,实现了电磁体数据的多视图、高质量、交互式可视分析。

An Interactive Visual Analysis Method for Electromagnetic Data Based on VTK

【技术实现步骤摘要】
一种基于VTK的电磁体数据交互式可视分析方法
本专利技术属于体数据的面绘制领域,涉及一种基于VTK的电磁体数据交互式可视分析方法。
技术介绍
面绘制是体数据可视化的一种重要方法,其基本思想是将体数据场中所有等于给定数据值的数据点查找出来,然后使用几何图元将这些点连接成面,该方法且具有渲染速度较快、占用系统资源较少等优点。面绘制最大的特点是采用了曲面拟合技术,在三维数据场中生成等值面,再结合光照模型和纹理模型进行三维图像的绘制。VTK是一款用于三维计算机图形学、图像处理和可视化的软件开发工具包。它是在面向对象原理的基础上设计和实现的,其内核采用C++语言进行构建,几乎支持目前所有的主流操作系统平台。VTK程序的流程可分为可视化管线和渲染引擎两部分,其中可视化管线包括Source、Filter和Mapper三部分,Source是指用于创建数据或者读取数据的类的统称,Filter对数据进行进一步处理,Mapper将数据转换为几何图元,而渲染引擎则对可视化管线送入的数据进行可视化表达,最终实现科学数据的可视化。而且VTK封装了很多常用的算法,其中就有面绘制常用的移动立方体算法(MC,MarchingCube),极大地提高了用户的开发效率。面绘制是体数据可视化的重要方法之一,而VTK(VisualizationToolkit,可视化工具箱)是一个高效的可视化工具包,将这二者结合可以搭建专业的体数据可视化平台。针对现有面绘制系统对空间电磁体数据研究较少,且系统交互性不强,用户无法有效进行可视分析等问题。
技术实现思路
要解决的技术问题为了避免现有技术的不足之处,本专利技术提出一种基于VTK的电磁体数据交互式可视分析方法,利用VTK搭建了一个电磁体数据交互式可视分析方法步骤,解决电磁数据面绘制系统显示效果单一、交互性差的问题。技术方案一种基于VTK的电磁体数据交互式可视分析方法,其特征在于步骤如下:步骤1:通过VTK软件开发工具包中的vtkImageReader类读取原始体数据,接着对导入的数据进行拉普拉斯平滑处理,然后进行数据类型转换,将数据转换为UnsignedChar型;读取原始体数据时根据需求设定体数据的维数、像素间隔、基准点;步骤2:遍历体数据,根据不同灰度值的出现频率,生成体数据灰度数组;将数组转换为vtkIntArray类型,接着将该数组转化为vtkDataObject类型,然后将该数组作为vtkBarChartActor类的输入,生成体数据灰度统计直方图;步骤3:在vtkMarchingCubes类提取体数据等值面上,通过SetValue函数在直方图的波峰、波谷对应的灰度值处设定对应的阈值,然后将每个等值面添加为一个actor,设定不同的透明度,最后通过SetColor函数设定每个等值面的颜色;步骤4:通过vtkLight类添加平行光光源,利用该类的SetColor函数设定光源颜色,SetPosition函数设定光源位置,SetIntensity函数设定光源强度;步骤5:通过vtkActor类中的SetAmbient、SetDiffuse、SetSpecular以及SetSpecularPower函数为每个actor即每个等值面设定环境光系数、漫反射系数、镜面光系数以及镜面光指数;步骤6:以切平面的变换矩阵作为vtkMatrix4x4类的输入,然后利用该类的SetElement函数设定体数据的中心点,利用vtkImageReslice类进行切片操作,指定切面提取中的差值方式;最后通过vtkLookupTable类设定颜色映射表,通过该类的SetTableValue函数为切片中不同灰度值指定不同的颜色值,生成二维切片图像;所述切平面的变换矩阵:XOY切面的变换矩阵为XOZ切面的变换矩阵为YOZ平面的变换矩阵为步骤7:利用vtkVectorText类设定标注字符串,并将该字符串转换为vtkPolyDataMapper类型,然后利用vtkFollower类将标注字符串添加为三维标注对象,采用SetColor函数设定标注颜色,AddPosition函数设定标注位置,SetScale函数设定标注缩放比例;步骤8:为面绘制、灰度统计直方图和切片模块分别添加对应的qvtkWidget部件,提取面绘制中的阈值设定参数、不透明度设定参数、颜色设定参数;提取虚拟切片绘制中的切片类型参数、切片平移量参数;提取标注绘制中的标注文本参数、标注位置参数;提取光源强度参数、光源位置参数;为参数添加该参数绑定的交互部件,实现电磁体数据交互式可视分析。有益效果本专利技术提出的一种基于VTK的电磁体数据交互式可视分析方法,利用VTK可视化工具包搭建了一个电磁体数据交互式可视分析系统。首先借助电磁体数据灰度统计直方图获得体数据灰度分布特征,并据此设定等值面的阈值、不透明度和颜色,实现多等值面的交互式设计,然后通过多角度切片功能使用户可以探索感兴趣平面的场强分布,接着为用户提供交互式标注功能使用户可将分析结果作为三维标记添加进渲染场景中,最后利用光照设计模块增强阴影效果,实现了电磁体数据的多视图、高质量、交互式可视分析。本专利技术的有益效果:1.本专利技术对电磁体数据灰度进行直方图统计,根据体数据灰度分布特点在关键点进行多等值面阈值设定,同时利用QT控件提供不透明度和配色的交互式设计,实现对电磁体数据的多等值面的交互式绘制。2.本专利技术可自由设定光源位置、强度以及等值面的光照系数,显著提高了面绘制的渲染效果。3.本专利技术利用多角度虚拟切片对电磁体数据内部进行观察分析,帮助用户获取感兴趣平面的场强分布特征。4.本专利技术通过交互式标注功能将用户的观察分析结果作为三维标注加入渲染场景中,将可视化与用户分析相结合,真正达到了电磁体数据的可视分析。附图说明图1系统原理图图2系统界面图3配色方案1显示效果图4配色方案2显示效果图5阈值设定方案1显示效果图6YOZ平面切片效果图7XOY平面切片效果图8XOZ平面切片效果具体实施方式现结合实施例、附图对本专利技术作进一步描述:详细原理图如图1所示,具体步骤如下:(1)通过VTK中的vtkImageReader类读取原始体数据,设定体数据的维数为63X63X63,像素间隔为1X1X1,基准点为(0,0,0),接着通过vtkSmoothPolyDataFilter类对导入的数据进行拉普拉斯平滑处理,利用该类SetNumberOfIterations函数设置平滑系数为2000,接着利用vtkImageCast类利用进行数据类型转换,将原始数据转换为UnsignedChar型。(2)遍历体数据,统计不同灰度值的出现频率,生成体数据灰度数组,将数组转换为vtkIntArray类型,并将该数组转化为vtkDataObject类型,然后将该数组作为vtkBarChartActor类的输入,生成体数据灰度统计直方图。(3)通过vtkMarchingCubes类提取体数据等值面,由于该体数据类型为UnsignedChar,因此阈值的范围从0-255,观察体数据灰度统计直方图,通过SetValue函数在直方图的波峰、波谷对应的灰度值处设定对应的阈值,提取5个等值面,对应的灰度值分别为65、100、150、200、255。然后将每个等值面添加为一本文档来自技高网...

【技术保护点】
1.一种基于VTK的电磁体数据交互式可视分析方法,其特征在于步骤如下:步骤1:通过VTK软件开发工具包中的vtkImageReader类读取原始体数据,接着对导入的数据进行拉普拉斯平滑处理,然后进行数据类型转换,将数据转换为UnsignedChar型;读取原始体数据时根据需求设定体数据的维数、像素间隔、基准点;步骤2:遍历体数据,根据不同灰度值的出现频率,生成体数据灰度数组;将数组转换为vtkIntArray类型,接着将该数组转化为vtkDataObject类型,然后将该数组作为vtkBarChartActor类的输入,生成体数据灰度统计直方图;步骤3:在vtkMarchingCubes类提取体数据等值面上,通过SetValue函数在直方图的波峰、波谷对应的灰度值处设定对应的阈值,然后将每个等值面添加为一个actor,设定不同的透明度,最后通过SetColor函数设定每个等值面的颜色;步骤4:通过vtkLight类添加平行光光源,利用该类的SetColor函数设定光源颜色,SetPosition函数设定光源位置,SetIntensity函数设定光源强度;步骤5:通过vtkActor类中的SetAmbient、SetDiffuse、SetSpecular以及SetSpecularPower函数为每个actor即每个等值面设定环境光系数、漫反射系数、镜面光系数以及镜面光指数;步骤6:以切平面的变换矩阵作为vtkMatrix4x4类的输入,然后利用该类的SetElement函数设定体数据的中心点,利用vtkImageReslice类进行切片操作,指定切面提取中的差值方式;最后通过vtkLookupTable类设定颜色映射表,通过该类的SetTableValue函数为切片中不同灰度值指定不同的颜色值,生成二维切片图像;所述切平面的变换矩阵:XOY切面的变换矩阵为...

【技术特征摘要】
1.一种基于VTK的电磁体数据交互式可视分析方法,其特征在于步骤如下:步骤1:通过VTK软件开发工具包中的vtkImageReader类读取原始体数据,接着对导入的数据进行拉普拉斯平滑处理,然后进行数据类型转换,将数据转换为UnsignedChar型;读取原始体数据时根据需求设定体数据的维数、像素间隔、基准点;步骤2:遍历体数据,根据不同灰度值的出现频率,生成体数据灰度数组;将数组转换为vtkIntArray类型,接着将该数组转化为vtkDataObject类型,然后将该数组作为vtkBarChartActor类的输入,生成体数据灰度统计直方图;步骤3:在vtkMarchingCubes类提取体数据等值面上,通过SetValue函数在直方图的波峰、波谷对应的灰度值处设定对应的阈值,然后将每个等值面添加为一个actor,设定不同的透明度,最后通过SetColor函数设定每个等值面的颜色;步骤4:通过vtkLight类添加平行光光源,利用该类的SetColor函数设定光源颜色,SetPosition函数设定光源位置,SetIntensity函数设定光源强度;步骤5:通过vtkActor类中的SetAmbient、SetDiffuse、SetSpecular以及SetSpecularPower函数为每个actor...

【专利技术属性】
技术研发人员:高颖李启凡汪静邵群陈局非郭淑霞李锐
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1