news 2026/4/22 14:46:30

Vol 建一个 3D 隐式函数体积数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vol 建一个 3D 隐式函数体积数据

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①创建一个vtkStructuredPoints数据并进行渲染展示


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonDataModel import vtkStructuredPoints from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkDoubleArray from vtkmodules.vtkFiltersCore import vtkContourFilter from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() """ vtkStructuredPoints 是 VTK 中最基础、最经典的规则体数据结构之一。在体数据(volume data)处理、医学影像(CT、MRI)、流场分析中用得非常多。 它和 vtkImageData 非常接近(后者是它的现代替代版本)。常用于医学图像,距离场、密度场,三维纹理数据 基本定义: vtkStructuredPoints 表示一个**在三维空间中均匀分布(uniform spacing)**的点阵数据。 也就是说:网格点是规则排列的;每个点在空间中的位置是通过原点 + 坐标间距计算出来的; 每个点都可以有标量(scalar)、向量(vector)等数据。 它是一个“结构化、规则间距的点网格”,“非结构化”网格(如 vtkUnstructuredGrid)不同 数据组织方式: 属性 | 含义 | Dimensions | 网格点的数量,例如 `(nx, ny, nz)` | Origin | 起始点(左下角/原点坐标) | Spacing | 各轴方向的网格间距 `(dx, dy, dz)` | """ vol = vtkStructuredPoints() vol.SetOrigin(-0.5, -0.5, -0.5) vol.SetDimensions(26, 26, 26) sp = 1.0 / 25.0 vol.SetSpacing(sp, sp, sp) scalars = vtkDoubleArray() scalars.SetNumberOfComponents(1) scalars.SetNumberOfTuples(26 * 26 * 26) for k in range(0, 26): z = -0.5 + k * sp kOffset = k * 26 * 26 for j in range(0, 26): y = -0.5 + j * sp jOffset = j * 26 for i in range(0, 26): x = -0.5 + i * sp s = x * x + y * y + z * z - (0.4 * 0.4) offset = i + jOffset + kOffset scalars.InsertTuple1(offset, s) # offset 索引, s具体的标量值 # scalars.InsertNextTuple1(s) # 等价替代 vol.GetPointData().SetScalars(scalars) # 等值面提取 contour = vtkContourFilter() contour.SetInputData(vol) contour.SetValue(0, 0.0) volMapper = vtkPolyDataMapper() volMapper.SetInputConnection(contour.GetOutputPort()) volMapper.ScalarVisibilityOff() volActor = vtkActor() volActor.SetMapper(volMapper) volActor.GetProperty().EdgeVisibilityOn() volActor.GetProperty().SetColor(colors.GetColor3d('Salmon')) renderer = vtkRenderer() renWin = vtkRenderWindow() renWin.AddRenderer(renderer) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) renderer.AddActor(volActor) renderer.SetBackground(colors.GetColor3d('SlateGray')) renWin.SetSize(512, 512) renWin.SetWindowName('Vol') # Interact with the data. renWin.Render() iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:19:31

Screenbox终极指南:现代化媒体播放器的完整解决方案

Screenbox终极指南:现代化媒体播放器的完整解决方案 【免费下载链接】Screenbox LibVLC-based media player for the Universal Windows Platform 项目地址: https://gitcode.com/gh_mirrors/sc/Screenbox 在数字媒体内容日益丰富的今天,如何选择…

作者头像 李华
网站建设 2026/4/18 18:59:47

TikTok SSL Pinning绕过技术详解

TikTok SSL Pinning绕过技术详解 【免费下载链接】Tiktok-SSL-Pinning-Bypass Bypass Tiktok SSL pinning on Android devices. 项目地址: https://gitcode.com/gh_mirrors/ti/Tiktok-SSL-Pinning-Bypass TikTok SSL Pinning Bypass项目提供了一套完整的解决方案&#x…

作者头像 李华
网站建设 2026/4/23 13:17:03

语音克隆用户授权机制设计:基于GPT-SoVITS

语音克隆用户授权机制设计:基于GPT-SoVITS 在虚拟主播一夜走红、AI配音广泛应用于短视频的今天,一段仅用几十秒录音训练出的“真人声线”可能被用来发布虚假言论、冒充他人身份,甚至进行诈骗。这并非科幻情节——随着 GPT-SoVITS 等少样本语…

作者头像 李华
网站建设 2026/4/20 21:34:05

终极RGB灯光控制解决方案:OpenRGB跨平台开源软件完整指南

终极RGB灯光控制解决方案:OpenRGB跨平台开源软件完整指南 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Rel…

作者头像 李华
网站建设 2026/3/27 5:28:41

Open-AutoGLM开源代码完全解读:3个你必须掌握的核心模块

第一章:Open-AutoGLM开源代码完全解读:项目概览与架构设计Open-AutoGLM 是一个面向通用语言模型自动化训练与推理优化的开源框架,旨在降低大模型部署门槛,提升训练效率与跨平台兼容性。该项目采用模块化设计理念,支持多…

作者头像 李华
网站建设 2026/4/23 11:20:49

ChatALL终极指南:如何快速掌握多AI并发对话的完整教程

ChatALL终极指南:如何快速掌握多AI并发对话的完整教程 【免费下载链接】ChatALL Concurrently chat with ChatGPT, Bing Chat, Bard, Alpaca, Vicuna, Claude, ChatGLM, MOSS, 讯飞星火, 文心一言 and more, discover the best answers 项目地址: https://gitcod…

作者头像 李华