by 今天不飞了

真是服了自己,半年不用就能忘得一干二净……每次都要重新百度,而网上的资料总是纷繁杂乱。这次“重新学习”,按自己的习惯分节记录下来,方便以后查看。也分享给其他从零开始的小伙伴。

三维矩阵体绘制-最简结构

网上很多可视化文章都是博主按照自己的工程需求写的,有些需求比较高,代码就相对复杂(我们可能用不着)。所以这里将代码简化,仅保留基本结构(不确定还能不能进一步删减)。

代码如下,里面的数字按需求随意改

	# arr3d 是你事先准备好的矩阵
	# [矩阵转vtk类]
    # (这个函数就是这么长...我也很无奈)
    image = vtk.util.vtkImageImportFromArray.vtkImageImportFromArray()        
    image.SetArray(arr3d)                           # 加载三维矩阵
    image.SetDataSpacing(spacing)                   # 设置PixelSpacing
    image.Update()
     # [创建渲染算法]
    volumeMapper = vtk.vtkGPUVolumeRayCastMapper()   
    volumeMapper.SetInputData(image.GetOutput())    # 加载渲染对象(原始提数据)
    # [创建物体颜色函数]
    colorFunc = vtk.vtkColorTransferFunction()      # 创建伪彩转换函数
    colorFunc.AddRGBPoint(0.0, 0.0, 0.0, 0.0)    
    colorFunc.AddRGBPoint(30.0, 196/255, 96/255, 0)
    colorFunc.AddRGBPoint(90.0, 254/255, 218/255, 182/255)
    colorFunc.AddRGBPoint(200.0, 239/255, 239/255, 239/255)
    # [创建物体不透明度函数]
    opacityFunc = vtk.vtkPiecewiseFunction()        # 创建分段函数
    opacityFunc.AddPoint(0, 0)
    opacityFunc.AddPoint(10.0, 0.01)
    opacityFunc.AddPoint(100.0, 0.5)
    opacityFunc.AddPoint(200, 1)
    # [创建物体属性]
    volumeProperty = vtk.vtkVolumeProperty()         
    volumeProperty.SetColor(colorFunc)              # 设置颜色转换
    volumeProperty.SetScalarOpacity(opacityFunc)    # 设置不透明度
    volumeProperty.SetInterpolationTypeToLinear()   # 设置插值方案
    volumeProperty.ShadeOn()                        # 阴影
    # [创建物体]
    vol = vtk.vtkVolume()    
    vol.SetMapper(volumeMapper)                     # 加载渲染算法
    vol.SetProperty(volumeProperty)                 # 加载物体属性    
    # [创建一个渲染器]
    ren = vtk.vtkRenderer()
    ren.AddVolume(vol)                              # 加载物体
    ren.SetBackground(0.0, 0.0, 0.0)                # 设置背景颜色
    # [创建一个渲染窗口]
    renWin= vtk.vtkRenderWindow()
    renWin.AddRenderer(ren)                         # 加载渲染器
    renWin.SetSize(600, 600)                        # 设置窗口尺寸
    # [创建交互器]
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)                    # 加载渲染窗口
    # [开始绘制]
    ren.ResetCamera()                               # 重置相机    
    renWin.Render()                                 # 渲染
    iren.Initialize()                               # 初始化交互器
    iren.Start()                                    # show
  1. 后续一点点加入更多模块和功能,让它NB起来
Python-VTK,最简结构的三维数据体绘制代码。真是服了自己,半年不用就能忘得一干二净……每次都要重新百度,而网上的资料总是纷繁杂乱。这次“重新学习”,按自己的习惯分节记录下来,方便以后查看。也分享给其他从零开始的小伙伴。 此软件包完全属于Paulo Herrera,目前托管于: 我确实盗用,伪造并重新包装了此软件包,以便将其托管在PyPI上,并在我经常使用时易于分发和安装。 我对此一无所获。 我的fork位于: 这个包是现今主要维护和。 EVTK(导出VTK)程序包允许将数据导出到二进制VTK文件,以便使用支持VTK文件的任何可视化程序包(例如Paraview,VisIt和Mayavi)进行可视化和数据分析。 EVTK不依赖于任何外部库(例如VTK),因此很容易安装在不同的系统中。 从0.9版开始,该软件包仅由一组纯Python文件组成,因此可以直接在安装了Python的任何系统中安装和运行它。 EVTK提供了低级和高级接口。 虽然可以使用低级接口导出存储在任何类型的容器中的数据,但高级功能可以轻松导出存储在Numpy数组中的数据。 该软件包托管在PyPI上,其位置如下
VTK在Java, Tcl, Python中都有接口 ,本文介绍VTKPython中的接口。 VTK (The Visualization Toolkit) 是一款用于计算机3D成像、构建模型、图像处理、容积渲染、科学数据可视化等方面的免费软件系统,支持Linux, Windows, Mac, Web, mobile devices等平台; 一些使用场景???????? VTK中图像融合方法-VTKImageBlend 的用法: 在一些场景中,我们需要将二张图像进行融合,在VTK中,有这种方法,就是 VTKImageBlend。 用法说明: 官网的说明 example #!/usr/bin/env python # encoding: utf-8 import vtk if __name__ == '__main__': image_jpeg_reader_vol = vtk.vtkJPEGReader() image_jpeg_reader_v
数据由素组成。 素是基本积元素,也可以理解为三维空间内的具有排列和颜色的点或一小块区域,这也是为什么可以保持高达六个标量参数的原因。 通常素属于固定网格,因此数据可以作为表格储存。在这种情况下,运行可以被认为是多维数组,数据可以被当作为本地储存的*.csv文件。然而,更常见的是,数据集被分成若干片,并且每个片被存储为位图图像。由于可以应用于图像的复杂压缩算法,明显减小模型尺寸。 数据可视化算法 可视化数据包括四种主要算法。以下将讨论各种算法和技术的特点及目前存在的问题。 1.基于切片方法
PyVista是一个基于VTKPython库,它提供了一组用于三维可视化和数据分析的工具。它可以与许多其他科学计算库集成,例如NumPy和Pandas,以便更好地处理数据。 以下是PyVista的一些主要功能: 1. 创建并操作网格:PyVista可以轻松地创建各种类型的网格,例如结构化网格、非结构化网格、点云等,并支持各种网格操作,例如裁剪、切割、重采样等。 2. 高质量的可视化:PyVista提供了各种高质量的可视化选项,例如绘制、等值面绘制、流线绘制等。此外,PyVista还支持交互式可视化,例如平移、旋转、缩放、选择等。 3. 数据分析:PyVista还包括各种数据分析工具,例如点云配准、曲面拟合、积计算等。 以下是一个使用PyVista创建并可视化网格的示例: ```python import pyvista as pv import numpy as np # 创建一个球网格 sphere = pv.Sphere() # 将其转换为numpy数组 points = np.array(sphere.points) # 可视化网格 p = pv.Plotter() p.add_mesh(sphere) p.show() 此外,PyVista还支持从文件中加载和保存网格数据,例如STL、PLY、VTK等。因此,在科学计算和三维可视化方面,PyVista是一个非常强大而且易于使用的Python库。