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

Decimation 模型的下采样

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①模型下采样


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOXML import vtkXMLPolyDataReader from vtkmodules.vtkFiltersCore import vtkDecimatePro from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkRenderingCore import vtkPolyDataMapper, vtkProperty, vtkActor, vtkRenderer, vtkRenderWindow, \ vtkRenderWindowInteractor, vtkCamera def main(): filePath = "Data/Torso.vtp" reduction = 0.9 colors = vtkNamedColors() backFaceColor = colors.GetColor3d("Gold") inputActorColor = colors.GetColor3d("NavajoWhite") decimatedActorColor = colors.GetColor3d('NavajoWhite') reader = vtkXMLPolyDataReader() reader.SetFileName(filePath) reader.Update() inputPolyData = reader.GetOutput() """ vtkDecimatePro 通过去除冗余的或不重要的三角形和顶点,将一个高分辨率的模型转换为一个低分辨率的模型 """ decimate = vtkDecimatePro() decimate.SetInputData(inputPolyData) decimate.SetTargetReduction(reduction) decimate.PreserveTopologyOn() # 保存原先的拓扑结构,不破坏洞或边界 decimate.Update() decimated = vtkPolyData() decimated.ShallowCopy(decimate.GetOutput()) inputMapper = vtkPolyDataMapper() inputMapper.SetInputData(inputPolyData) backFace = vtkProperty() backFace.SetColor(backFaceColor) inputActor = vtkActor() inputActor.SetMapper(inputMapper) inputActor.GetProperty().SetInterpolationToFlat() inputActor.GetProperty().SetColor(inputActorColor) inputActor.SetBackfaceProperty(backFace) decimatedMapper = vtkPolyDataMapper() decimatedMapper.SetInputData(decimated) decimatedActor = vtkActor() decimatedActor.SetMapper(decimatedMapper) decimatedActor.GetProperty().SetColor(decimatedActorColor) decimatedActor.GetProperty().SetInterpolationToFlat() decimatedActor.SetBackfaceProperty(backFace) renderWindow = vtkRenderWindow() renderWindow.SetSize(600, 300) renderWindow.SetWindowName('Decimation'); # And one interactor interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) leftViewport = [0.0, 0.0, 0.5, 1.0] rightViewport = [0.5, 0.0, 1.0, 1.0] leftRenderer = vtkRenderer() renderWindow.AddRenderer(leftRenderer) leftRenderer.SetViewport(leftViewport) # leftRenderer.SetBackground((colors.GetColor3d('leftBkg'))) leftRenderer.SetBackground((colors.GetColor3d('Peru'))) rightRenderer = vtkRenderer() renderWindow.AddRenderer(rightRenderer) rightRenderer.SetViewport(rightViewport) # rightRenderer.SetBackground((colors.GetColor3d('rightBkg'))) rightRenderer.SetBackground((colors.GetColor3d('CornflowerBlue'))) # Add the sphere to the left and the cube to the right leftRenderer.AddActor(inputActor) rightRenderer.AddActor(decimatedActor) # Shared camera # Shared camera looking down the -y axis camera = vtkCamera() camera.SetPosition(0, -1, 0) camera.SetFocalPoint(0, 0, 0) camera.SetViewUp(0, 0, 1) camera.Elevation(30) camera.Azimuth(30) leftRenderer.SetActiveCamera(camera) rightRenderer.SetActiveCamera(camera) leftRenderer.ResetCamera() leftRenderer.ResetCameraClippingRange() renderWindow.Render() renderWindow.SetWindowName('Decimation') interactor.Start() if __name__ == '__main__': main()
http://www.cnnetsun.cn/news/178919.html

相关文章:

  • LangFlow B站视频内容创作方向建议
  • LangFlow代码质量检查工具集成(ESLint/Prettier)
  • LangFlow Google排名冲顶可能性分析
  • TLS 1.0/1.1停用倒计时,Open-AutoGLM如何快速适配TLS 1.2+?
  • 基于springboot的家教管理系统的设计与实现
  • 解锁科研新维度:书匠策AI期刊论文模块,开启学术写作的“智变”时代
  • LangFlow百度搜索排名优化技巧
  • 数智时代,openGauss Summit 2025即将发布哪些技术创新破局
  • LangFlow CI/CD流水线搭建实践
  • 论指针运算
  • 面试官:多模态 Transformer 如何处理不同模态的序列长度差异?
  • LangFlow结合RAG架构构建企业知识库问答
  • 480万人才缺口!网络安全,一个被低估的“金饭碗”!
  • Web 安全入门:从 OWASP Top 10 到常见漏洞,从零基础入门到精通,收藏这一篇就够了!_web top10
  • TOSHIBA 2SA1162-GR,LF SOT-23-3 三极管(BJT)
  • 【MWORKS使用技巧84】Sysplorer中使用Constants组件时,如何产生向量信号?
  • 掌握这4种异常处理模式,轻松应对Open-AutoGLM解密崩溃危机
  • 如何在30分钟内完成Open-AutoGLM加密传输配置?高效运维必看
  • NetSupport Manager 路径遍历漏洞 (CVE-2025-34181) 技术深度解析
  • Electron 实战项目
  • Open-AutoGLM解密异常频发?(企业级容错架构设计实践)
  • 你还在用传统加密?Open-AutoGLM的这4个优势已彻底改写行业规则
  • 企业级城市垃圾分类管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 为什么你的系统总被Open-AutoGLM误封?一文看懂白名单配置核心要点
  • 【数据安全突围战】:Open-AutoGLM为何成为2024年最值得掌握的加密技术?
  • 使用机器学习简化机构沟通,提升可读性与包容性
  • LangFlow降低AI开发门槛:非技术人员也能构建智能应用
  • LangFlow与LangChain协同工作原理深度剖析
  • 16.2 对齐方法论:FineTune与RAG两大技术路径
  • 16.3 微调技术盘点:产品经理需要了解的核心方法