当前位置: 首页 > news >正文

ConnectivityFilter数据集中分离的区域或连通分量

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①vtkDelaunay3D模型生成,②模型连通性分析


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersCore import vtkAppendFilter, vtkConnectivityFilter, vtkDelaunay3D from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkRenderingCore import ( vtkActor, vtkDataSetMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() sphereSource1 = vtkSphereSource() sphereSource1.Update() """ vtkDelaunay3D 用于执行 三维 Delaunay 三角剖分(或称为三维 Delaunay 网格划分)的一个类 主要作用是:根据给定的点集,生成一个 Delaunay 三维网格,即将这些点组织成一个由三角形、四面体等构成的多面体网格 这里的作用类似于用另外一种数据形式去表示这个球体 """ delaunay1 = vtkDelaunay3D() # delaunay1.SetInputData(sphereSource1.GetOutput()) delaunay1.SetInputConnection(sphereSource1.GetOutputPort()) delaunay1.Update() sphereSource2 = vtkSphereSource() sphereSource2.SetCenter(5, 0, 0) delaunay2 = vtkDelaunay3D() # delaunay2.SetInputData(sphereSource2.GetOutput()) delaunay2.SetInputConnection(sphereSource2.GetOutputPort()) delaunay2.Update() appendFilter = vtkAppendFilter() appendFilter.AddInputConnection(delaunay1.GetOutputPort()) appendFilter.AddInputConnection(delaunay2.GetOutputPort()) appendFilter.Update() """ vtkConnectivityFilter 拓扑连通性分析过滤器 根据几何或拓扑连通性,把输入数据 划分成若干个连通区域(connected regions),并且可以提取其中的一个或多个区域 """ connectivityFilter = vtkConnectivityFilter() connectivityFilter.SetInputConnection(appendFilter.GetOutputPort()) """ SetExtractionModeToAllRegions 提取所有的连通域 """ connectivityFilter.SetExtractionModeToAllRegions() """ ColorRegionsOn 给不同的连通区域分配不同的 RegionId 标量值 并把它作为输出数据中的一个数组附加到每个单元(Cell)的属性上 """ connectivityFilter.ColorRegionsOn() connectivityFilter.Update() mapper = vtkDataSetMapper() mapper.SetInputConnection(connectivityFilter.GetOutputPort()) mapper.Update() actor = vtkActor() actor.SetMapper(mapper) renderer = vtkRenderer() renderer.AddActor(actor) renWindow = vtkRenderWindow() renWindow.AddRenderer(renderer) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWindow) iren.Initialize() renWindow.Render() renWindow.SetWindowName('ConnectivityFilter') renderer.SetBackground(colors.GetColor3d('deep_ochre')) renderer.GetActiveCamera().Zoom(0.9) renWindow.Render() iren.Start() if __name__ == '__main__': main()
http://www.jsqmd.com/news/107814/

相关文章:

  • Curvatures 曲率的计算、边缘曲率的调整以及曲率、颜色的映射
  • Kotaemon推理链可视化功能上线,调试更高效
  • 百度网盘解析工具:3步实现高速下载的终极解决方案
  • ExtractPolyLinesFromPolyData切割一个三维模型(球体),并可视化切割后产生的多条等高线
  • ExtractSelection 选择和提取数据集中的特定点,以及如何反转该选择
  • 5分钟掌握LOL游戏形象定制:LeaguePrank合规美化工具使用指南
  • 小熊猫Dev-C++快速上手教程:零基础搭建C/C++开发环境
  • 网络遥测(Telemetry/gNMI)的结构化建模与特征化体系—— 从“采集指标”到“可被 AI 推理的状态向量”
  • 双入选!网易云信获爱分析权威认可,引领Agent实践!
  • 大模型开发知识
  • 面了 100+ 次前端后,我被一个 React 问题当场“打回原形”
  • 阿里万相2.6杀疯了!Sora 2瞬间不香了
  • EmotiVoice语音合成引擎的实时监控与日志记录功能
  • 全网首发 Gemini 3 + Nano Banana Pro 混血流玩法,复刻任意风格只需十秒!
  • 无需重造轮子!Kotaemon提供开箱即用的RAG组件
  • TLS网络安全协议巩固知识基础题(4)
  • 联想SR590服务器惊魂72分钟:层层闯关,从密码锁死到阵列卡“罢工”全记录
  • http的会话控制(flask)
  • AI搜索排名GEO优化行业研究报告
  • TLS网络安全协议巩固知识基础题(5)
  • FTP文件传输协议巩固知识基础题(1)
  • 再见 PotPlayer!更好用的开源播放器,来了
  • 【下篇】在 OpenAI 打造流处理平台:超大规模实时计算的实践与思考
  • 人类记忆 vs 大模型记忆,到底差在哪?
  • 做SEO还在手动选词?InfiniSynpse带你5分钟筛选出优质词!
  • 基于Golang的分布式综合资产管理系统设计与实现
  • 基于Golang与Vue3的全栈博客系统设计与实现
  • 基于GoFrame与微内核架构的企业级物联网平台设计与实现
  • 基于Beego的轻量级功能权限管理系统设计与实现
  • 基于Gin+GORM+Casbin的权限管理系统设计与实现