news 2025/12/25 18:49:46

Decimation 模型的下采样

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 18:56:31

LangFlow robots.txt配置最佳范例

LangFlow robots.txt配置最佳范例 在如今AI应用快速迭代的背景下,越来越多团队开始采用可视化工具来加速大语言模型(LLM)系统的构建。LangFlow 作为 LangChain 生态中炙手可热的图形化开发平台,正被广泛用于原型设计、教学演示和企…

作者头像 李华
网站建设 2025/12/23 19:47:23

运维老鸟私藏技巧:用5行代码实现Open-AutoGLM证书到期提前30天提醒

第一章:Open-AutoGLM 证书过期提醒设置 在使用 Open-AutoGLM 框架进行自动化任务调度时,TLS 证书的安全性至关重要。为避免因证书过期导致服务中断,系统支持配置证书过期提醒功能,及时通知管理员进行更新。 配置提醒阈值 可通过修…

作者头像 李华
网站建设 2025/12/24 2:40:19

【Open-AutoGLM隐私审计实战指南】:掌握数据访问控制的5大核心机制

第一章:Open-AutoGLM隐私数据访问审计概述Open-AutoGLM 是一款基于开源大语言模型的自动化数据处理框架,广泛应用于企业级智能问答、数据分析与决策支持系统。在实际部署中,系统不可避免地需要访问包含个人身份信息(PII&#xff0…

作者头像 李华
网站建设 2025/12/23 23:03:51

LangFlow微信公众号推文节奏规划

LangFlow:让大模型开发“看得见” 在 AI 应用爆发的今天,一个产品创意从灵感到落地的时间被不断压缩。但对许多开发者、产品经理甚至非技术背景的探索者来说,构建一个能调用大语言模型(LLM)的智能系统,依然…

作者头像 李华
网站建设 2025/12/24 5:52:35

LangFlow流式输出控制:逐字返回还是整段显示?

LangFlow流式输出控制:逐字返回还是整段显示? 在构建AI对话系统时,你有没有遇到过这样的体验:点击“发送”后界面一片空白,几秒钟毫无动静,正当你以为程序卡死、准备刷新页面时,答案突然“砰”地…

作者头像 李华