news 2026/7/5 10:36:15

DisplacementPlot 结构动态可视化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DisplacementPlot 结构动态可视化

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkWarpVector 根据向量场对几何体进行形变


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOLegacy import vtkPolyDataReader from vtkmodules.vtkFiltersGeneral import vtkWarpVector from vtkmodules.vtkFiltersCore import vtkPolyDataNormals, vtkVectorDot from vtkmodules.vtkCommonCore import vtkLookupTable from vtkmodules.vtkRenderingCore import vtkColorTransferFunction, vtkActor, vtkDataSetMapper, vtkRenderer, \ vtkRenderWindow, vtkRenderWindowInteractor def main(): colors = vtkNamedColors() file_name, color_scheme = "Data/plate.vtk", 0 plate = vtkPolyDataReader() plate.SetFileName(file_name) plate.SetVectorsName("mode8") # 指定从输入的 .vtk 文件中读取哪个数据数组作为主要的矢量数据 plate.Update() """ vtkWarpVector 根据向量场对几何体进行形变 """ warp = vtkWarpVector() warp.SetInputConnection(plate.GetOutputPort()) warp.SetScaleFactor(0.5) normals = vtkPolyDataNormals() normals.SetInputConnection(warp.GetOutputPort()) """ vtkVectorDot 主要用于计算两个向量场之间的点积,并把结果作为一个新的标量场输出 """ color = vtkVectorDot() # 在这里只有一个输入,因此计算的是法向矢量与活动矢量之间的点积 color.SetInputConnection(normals.GetOutputPort()) lut = vtkLookupTable() MakeLUT(color_scheme, lut) plateMapper = vtkDataSetMapper() plateMapper.SetInputConnection(color.GetOutputPort()) plateMapper.SetLookupTable(lut) plateMapper.SetScalarRange(-1, 1) plateActor = vtkActor() plateActor.SetMapper(plateMapper) ren = vtkRenderer() renWin = vtkRenderWindow() renWin.AddRenderer(ren) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) ren.AddActor(plateActor) ren.SetBackground(colors.GetColor3d("Wheat")) renWin.SetSize(512, 512) renWin.SetWindowName('DisplacementPlot') ren.GetActiveCamera().SetPosition(13.3991, 14.0764, 9.97787) ren.GetActiveCamera().SetFocalPoint(1.50437, 0.481517, 4.52992) ren.GetActiveCamera().SetViewAngle(30) ren.GetActiveCamera().SetViewUp(- 0.120861, 0.458556, - 0.880408) ren.GetActiveCamera().SetClippingRange(12.5724, 26.8374) renWin.Render() iren.Start() def MakeLUT(colorScheme, lut): nc = 256 ctf = vtkColorTransferFunction() if colorScheme == 1: ctf.SetColorSpaceToDiverging() ctf.AddRGBPoint(0.0, 0.085, 0.532, 0.201) ctf.AddRGBPoint(0.5, 0.865, 0.865, 0.865) ctf.AddRGBPoint(1.0, 0.436, 0.308, 0.631) lut.SetNumberOfTableValues(nc) lut.Build() for i in range(0, nc): rgb = list(ctf.GetColor(float(i) / nc)) rgb.append(1) lut.SetTableValue(i, *rgb) elif colorScheme == 2: nc2 = nc / 2.0 lut.SetNumberOfColors(nc) lut.Build() for i in range(0, int(nc2)): # White to black. v = (nc2 - i) / nc2 lut.SetTableValue(i, v, v, v, 1) for i in range(int(nc2), nc): # Black to white. v = (i - nc2) / nc2 lut.SetTableValue(i, v, v, v, 1) else: ctf.SetColorSpaceToDiverging() ctf.AddRGBPoint(0.0, 0.230, 0.299, 0.754) ctf.AddRGBPoint(1.0, 0.706, 0.016, 0.150) lut.SetNumberOfTableValues(nc) lut.Build() for i in range(0, nc): rgb = list(ctf.GetColor(float(i) / nc)) rgb.append(1.0) lut.SetTableValue(i, *rgb) if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 20:00:42

ResNet18技术揭秘:为什么它能精准识别1000类物体

ResNet18技术揭秘:为什么它能精准识别1000类物体 1. 引言:通用物体识别中的ResNet-18 在当今人工智能应用中,图像分类是计算机视觉最基础也最关键的一步。从智能相册自动打标签,到自动驾驶系统感知环境,背后都离不开…

作者头像 李华
网站建设 2026/7/1 20:35:16

ResNet18性能对比:CPU与GPU推理速度测试报告

ResNet18性能对比:CPU与GPU推理速度测试报告 1. 背景与测试目标 随着深度学习在通用物体识别领域的广泛应用,ResNet系列模型因其出色的精度与效率平衡,成为工业界和学术界的首选之一。其中,ResNet-18 作为轻量级代表&#xff0c…

作者头像 李华
网站建设 2026/7/1 8:58:39

ResNet18应用实例:零售货架商品识别系统

ResNet18应用实例:零售货架商品识别系统 1. 引言:通用物体识别与ResNet-18的工程价值 在智能零售、自动化巡检和视觉监控等场景中,快速、稳定、低成本的通用物体识别能力是实现智能化升级的关键基础。传统方案依赖云API调用或复杂部署流程&…

作者头像 李华
网站建设 2026/6/26 8:24:03

ResNet18性能优化:CPU推理速度提升5倍的详细步骤

ResNet18性能优化:CPU推理速度提升5倍的详细步骤 1. 背景与挑战:通用物体识别中的效率瓶颈 在边缘计算和本地化部署场景中,深度学习模型的推理效率直接决定了用户体验和系统可用性。尽管ResNet-18作为轻量级图像分类模型被广泛使用&#xf…

作者头像 李华
网站建设 2026/6/25 9:54:26

ResNet18技术详解:深度学习在CV中的应用

ResNet18技术详解:深度学习在CV中的应用 1. 引言:通用物体识别中的ResNet18 在计算机视觉(Computer Vision, CV)领域,图像分类是基础且关键的任务之一。从早期的SIFT特征分类器方法,到如今基于深度神经网…

作者头像 李华
网站建设 2026/7/4 16:09:12

ResNet18部署优化:提升服务稳定性的策略

ResNet18部署优化:提升服务稳定性的策略 1. 背景与挑战:通用物体识别中的稳定性需求 在AI服务落地过程中,模型推理的稳定性往往比精度更直接影响用户体验。尤其是在边缘设备或资源受限环境中,一个“看似准确”的模型若频繁崩溃、…

作者头像 李华