等值面(线)

抽取轮廓的操作对象是标量数据。其思想是:将数据集中标量值等于某一指定恒量值的部分提取出来。对于3D的数据集而言,产生的是一个等值面;对于2D的数据集而言,产生的是一个等值线。其典型的应用有气象图中的等温线、地形图中的等高线。对于医学数据而言,不同的标量值代表的是人体的不同部分,因而可以分别提取出人的皮肤或骨头。

等值线

提取等值线需要vtkContourFilter过滤器,输入数据源,设置等值线,更新即可得到等值线数据。

// 1 提取轮廓 corresponding to the black limit of the image

vtkSmartPointer<vtkContourFilter> contourFilter =
vtkSmartPointer<vtkContourFilter>::New();contourFilter->SetInputConnection(sphereWindowToImageFilter->GetOutputPort());contourFilter->GenerateValues(5, 0, 400);// 5个等值线:0 100 200 300 400contourFilter->Update();

// 得到等值线数据

vtkSmartPointer<vtkPolyData> contourPolyData = contourFilter->GetOutput();vtkContourFilter

抽取轮廓的功能是由一个过滤器实现的,如vtkContourFilter 。vtkContourFilter 可以接受任意数据集类型作为输入,因而具有 一般性。使用vtkContourFilter 时,除了需要设置输入数据集外,还需要指定一个或多个用于抽取的标量值。

可用如下两种方法进行设置:

SetValue()

逐个设置抽取值。该方法有个两个参数:第一个参数是抽取值的索引号,表示第几个 抽取值。索引号从0开始计数;第二个参数就是指定的抽取值。SetValue(i,value) i表示第几条等值线,从0开始计算,value表示等值线的值。
多边形的每个点都有一个属性值,两个相邻的属性值之间要先通过插值,再把这些属性值作为该函数的输入。
如SetValue(0,5) 画一条等值为5的等值线两个相邻的点的属性值为3和6,则先插值为(3,4,5,6),所以该先应该经过这条边的2/3处。

GenerateValues()

自动产生一系列抽取值。该方法有三个参数:第一个参数是抽取值的个数,后面两个参数是抽取值的取值范围。
例如:
vtkSmartPointer<vtkContourFilter> contours =vtkSmartPointer<vtkContourFilter>::New();contours->GenerateValues(5.0, 0.0, 1.2);

最终产生的抽取值为0.0, 0.3, 0.6, 0.9和1.0,这是一个等差数列。

SetValue与GenerateValues的区别与联系

这两个函数的不同之处在于SetValue设置一条等值线值,而GenerateValues对应n条等值线的值,同时数量n包括两个边界值,其余n-2条等值线的值自动按照线性关系产生。
SetValue和GenerateValues函数根据先后调用关系产生覆盖,即后调用的函数产生的等值线可能覆盖掉先调用函数产生的等值线,这与等值线的条数(GetNumberOfContours)相关。
例如:首先调用GenerateValues(3, 100, 300)产生3条等值线,分别为100、200、300;然后调用SetValue(0, 125),则最终效果为共有3条等值线,分别为125、200、300;如果改为调用SetValue(3, 400),则最终效果为共有4条等值线,分别为100、200、300、400。
SetValue一般用于覆盖某一条已经存在的等值线,或者增加一条等值线;GenerateValues一般重新设置等值线的条数。

等值线示例

m_contourFilter->SetValue(0, 1);// 设置值为1的等值线

m_contourFilter->SetValue(1, 2);// 设置值为2的等值线

m_contourFilter->SetValue(2, 3);// 设置值为3的等值线

m_contourFilter->SetValue(3, 4);// 设置值为4的等值线

m_contourFilter->SetValue(4, 5);// 设置值为5的等值线

m_contourFilter->SetValue(5, 6);// 设置值为6的等值线

m_contourFilter->SetValue(6, 7);// 设置值为7的等值线

m_contourFilter->Update(); // 计算出轮廓数据

不同值之间如果差距过大,中间总是会被插入对应的等值线:

vtkContourFilter等值面(线)相关推荐

  1. VTK笔记-CT图像获取皮肤等值面-vtkContourFilter类的使用

    文章目录 vtkContourFilter SetValue GenerateValues SetValue与GenerateValues的区别与联系 实例 代码 各个对象的关系图 运行效果 引用 本 ...

  2. VTK修炼之道55:图形基本操作进阶_表面重建技术(等值面提取)

    1.等值面提取 等值面(线)提取是一种常用的可视化技术,常应用于医学.地质.气象等领域.例如,在医学图像处理中,由于CT.MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化, ...

  3. matlab优化设计大作业答案,优化设计有哪些方法(2019优化设计答案大全)

    本书主要介绍机械优化设计方法与实例,全书共有9章,内容主要包括机械优化设计的基本要素及数学模型.优化设计的理论基础.常见的优化设计方法和优化设计软件简介.书中对工程中常见的六大类优化设计方法--一维搜 ...

  4. openlayers加kriging出等值线图

    openlayers加kriging出等值线图 方法一 效果图 代码 <!DOCTYPE html> <html> <head><meta charset=& ...

  5. 【Fluent】iso-clip、iso-surface和plane-surface的区别,iso-surface如何添加和应用?Error:Surface creation failed错误

    下文所有对iso-surface的描述和实验源于2022R1版本的Fluent. 一.iso-surface和iso-clip的用途 iso-surface的用途,本质上只有一个--绘制等值线或等值面 ...

  6. 投资学U06 风险资产配置 习题笔记

    根据博迪投资学第九版课后习题完成的系列.每道题都有完整的步骤,附上推理过程和错误答案批驳,以辅助理解.市面上的笔记和视频都太乱,希望这份笔记能以数理严谨性帮到大家. 中英文习题都是一样的,部分数据中文 ...

  7. 单目标模糊优化设计matlab程序,优化设计有哪些方法

    本书主要介绍机械优化设计方法与实例,全书共有9章,内容主要包括机械优化设计的基本要素及数学模型.优化设计的理论基础.常见的优化设计方法和优化设计软件简介.书中对工程中常见的六大类优化设计方法--一维搜 ...

  8. SuperMap GIS 三维方向矢量数据处理详解

    一.矢量数据来源 矢量数据结构是通过记录空间对象的坐标及空间关系,尽可能精确地表现点.线.多边形等地理实体的空间位置.在矢量数据结构中,点数据可直接用坐标值描述:线数据可用均匀或不均匀间隔的顺序坐标链 ...

  9. 数量场的等值面与矢量场的矢量线的一些基本的东西(写得不好)

    一个数量场里,等值面有无穷多个. 一个空间可以看作有无穷多个等值面穿套而成. 一个空间里面,任意两个等值面不能相交,如果两个等值面相交,相交处取何值? 工程规定,c2−c1=c3−c2c_2-c_1= ...

  10. 基于点、线数据三维地质建模方法

    ** 基于点.线数据三维地质建模方法 ** 1.前言   作者本人计算机出身,近一年多负责公司地质建模项目项目工作,项目关联计算机.采矿行业相关技术.本文章主要介绍采矿行业地质建模及模型更新相关数字化 ...

最新文章

  1. 【Spring框架家族】mybatis generator代码自动生成(看得上眼直接拿去用即可)
  2. RStudio快捷键
  3. Java静态方法可能会产生代码异味
  4. 安卓9与10的系统要求_代码开源!支持RISC-V架构的安卓系统终于来了!
  5. 第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁
  6. 学python需要什么基础-Python入门学习需要哪些条件?
  7. Ubuntu 安装 中文输入法(Google 拼音)
  8. 越狱团队否认收钱并中止与太极合作
  9. MPP架构、常见OLAP引擎分析
  10. 单片机c语言中断嵌套,关于单片机中断嵌套总结
  11. js方法禁止查看源文件、防止复制、禁止右键、防被框架的方法总结
  12. iOS调用系统相机将英文改成中文
  13. 用python解“计算工资”题
  14. 【攻防世界WEB】难度三星9分入门题(上):simple_js、mfw
  15. 停息挂账一定要付首付款吗_什么是停息挂账?停息挂账能解决问题吗?
  16. STM32CubeMX介绍、下载与安装
  17. python简易爬虫
  18. Spring Security (一) : 设置登录账号密码的三种方式
  19. 后台管理UI的框架选择
  20. 【chrome插件开发二】chrome常用语法汇总

热门文章

  1. 明尼苏达计算机科学与工程,明尼苏达大学计算机科学专业排名第29(2020年USNEWS美国排名)...
  2. 一种防止拍摄屏幕的新技术
  3. iOS中微信语音动画
  4. js继承,es3,es6的实现继承
  5. 如何删除微软拼音输入法2003(转)
  6. 历年系统架构设计师考试之设计模式试题-2012年
  7. Android实现身份证号码验证
  8. 《淘宝数据魔方技术架构解析》阅读笔记
  9. 球缺体积和球冠表面积的计算公式及应用
  10. html5 dat.gui,Dat.gui 使用教程