标签: vtk

使用python,vtk和py2exe构建可执行文件

是否可以使用py2exe为vtk创建二进制可执行文件?

有人可以提供最低限度的工作示例或至少一些提示吗?Py2exe不是必需的.如果有其他类似程序(bbfreeze等)的工作解决方案,我也很感兴趣.

python py2exe vtk

6
推荐指数
1
解决办法
692
查看次数

VTK/Python /编译

我想在Windows系统上将VTK与Python一起使用.

似乎我不能使用Windows安装程序,但"必须使用CMake和本机构建系统从源代码编译VTK".到目前为止,我已经安装了CMake.

但现在我想知道如何继续?看来我需要MS Visual Studio来创建项目文件?!

但我没有Visual Studio.那我该怎么办?

python compilation cmake vtk

6
推荐指数
1
解决办法
1291
查看次数

在c ++中用花括号括起来的分号

我最近开始使用vtk包,我看到这个奇怪的符号,它们包括;在关闭花括号后}.这是一个例子vtkUnstructuredGrid.h

// Description:
// Standard vtkDataSet API methods. See vtkDataSet for more information.
int GetDataObjectType() {return VTK_UNSTRUCTURED_GRID;};
Run Code Online (Sandbox Code Playgroud)

它不是必需的,QtCreator也可以extra ;在解析代码时正确地检测到这一点.我很好奇这可能是什么原因?也许可读性?

c++ vtk

6
推荐指数
1
解决办法
1590
查看次数

c ++ vtk xml writer(vtkImageData) - 同一个vti文件中的多个变量

我试图将统一网格中的数据写入vtk XML文件,以便我可以使用Paraview渲染它.我希望我的输出文件包含两个变量:一个3分量向量和每个点的一个标量值.我设法写了一个.vti文件,只包含向量,如下所示:

#include <vtkVersion.h>
#include <vtkSmartPointer.h>
#include <vtkXMLImageDataWriter.h>
#include <vtkImageData.h>    

int main()
{
    int nx = 10, ny = 10, nz = 10;

    vtkSmartPointer<vtkImageData> imageData =
        vtkSmartPointer<vtkImageData>::New();
    imageData->SetDimensions(nx, ny, nz);

#if VTK_MAJOR_VERSION <= 5
    imageData->SetNumberOfScalarComponents(3);
    imageData->SetScalarTypeToDouble();
#else
    imageData->AllocateScalars(VTK_DOUBLE, 3);
#endif

    for (int k = 0; k < nz; ++k) {
        for (int j = 0; j < ny; ++j) {
            for (int i = 0; i < nx; ++i) {
                double * voxel = static_cast<double*>(imageData->GetScalarPointer(i,j,k));
                int coord = i + …
Run Code Online (Sandbox Code Playgroud)

c++ xml vtk

6
推荐指数
1
解决办法
2127
查看次数

将3D numpy导出为VTK文件,以便在Paraview/Mayavi中查看

对于那些想要将简单的3D numpy数组(以及轴)导出到.vtk(或.vtr)文件以进行后期处理并在Paraview或Mayavi中显示的人,有一个名为PyEVTK的小模块就是这样做的.该模块支持结构化和非结构化数据等.不幸的是,即使代码在基于unix的系统中工作正常,我也无法在任何简单地使事情变得复杂的Windows安装上工作(不断崩溃).我联系了开发人员,但他的建议没有用

因此我的问题是:如何使用该from vtk.util import numpy_support函数将3D数组(函数本身不支持3D数组)导出到.vtk文件?有没有一种简单的方法可以在不创建vtkDatasets等的情况下完成它?

非常感谢!

numpy vtk paraview

6
推荐指数
2
解决办法
1万
查看次数

使用pvpython将数据文件类型读取器添加到paraview

我知道您可以将不同数据文件类型的读取器添加到paraview中,但是,所有人都在谈论在c ++中做很多VTK东西,以及(可能更糟)重新编译paraview以使其了解您的数据文件格式。另一方面,paraview还支持python中的脚本编写。也许是因为我对VTK不熟悉,但是对我来说,我只能从pvpython 操作 VTK对象。有什么方法可以使用pvpython动态地将阅读器添加到paraview中?

python vtk paraview pvpython

6
推荐指数
1
解决办法
779
查看次数

从多个MPI输出合成VTK文件

对于盖驱动腔(CFD)的Lattice Boltzmann模拟,我将立方域分解为(也是立方)8个子域,这些子域由8个等级独立计算。每个MPI等级都会为每个时间步生成一个VTK文件,并且由于我使用的是ParaView,因此我希望将整个内容可视化为一个多维数据集。更具体地说明我要实现的目标:

  • 我有一个长度为8(每个方向的元素数)=> 8x8x8 = 512个元素的多维数据集。
  • 每个维度分配给2个等级,即每个等级处理4x4x4 = 64个元素。
  • 每个等级都会将结果写入lbm_out_<rank>.<timestep>.vtsVTK StructuredGrid格式的文件中。
  • 我想生成一个.pvts文件,该*.vts文件收集文件并将包含子域的文件合并为一个文件,ParaView可以将其视为整个域。

不幸的是,我遇到了许多问题,因为我觉得ParaView和VTK的文档记录非常差,并且来自ParaView的错误消息完全没有用。

我有以下*.pvts文件,其中包括一个幽灵层和:

<?xml version="1.0"?>
<VTKFile type="PStructuredGrid" version="0.1" byte_order="LittleEndian">
    <PStructuredGrid WholeExtent="0 7 0 7 0 7 " GhostLevel="1">
        <PPoints>
            <PDataArray NumberOfComponents="3" type="Float32" />
        </PPoints>
        <Piece Extent="0 4 0 4 0 4" Source="lbm_out_0.0.vts"/>
        <Piece Extent="3 7 0 4 0 4" Source="lbm_out_1.0.vts"/>
        <Piece Extent="0 4 3 7 0 4" Source="lbm_out_2.0.vts"/>
        <Piece Extent="3 7 3 7 0 4" Source="lbm_out_3.0.vts"/>
        <Piece Extent="0 4 0 …
Run Code Online (Sandbox Code Playgroud)

parallel-processing mpi scientific-computing vtk paraview

6
推荐指数
1
解决办法
1361
查看次数

VTK无法使用vtkClipClosedSurface构造适当的闭合曲面

以下是我所做的粗略解释vtk:

  1. 创建一个表面(一个最小的表面,与它不太相关,但几何结构很重要:陀螺仪有两个完全相互关闭的迷宫).
  2. vtkClipClosedSurface切断迷宫之一,使我得到了没有打开的表面的对象.一个规则的表面看起来是这样的,有一个封闭的表面看起来是这样.

这是我的问题:对于我的结构的更复杂的版本,我得到这个: 右下方的破损表面 你能看到它在左上角是如何正常工作的,靠近右下方它会停止创建曲面吗?有时我在最后一部分也会得到非常奇怪的三角形.

根据我的理解,vtkClipClosedSurface从表面法线知道在哪里关闭表面和不在哪里.问题是:我的结构的法线很好,它们都指向正确的方向.如果仔细观察结构,你会注意到下部基本上是顶部的反转,它逐渐变化,都在一个表面上.

我尝试修改我的结构,然后切割许多东西vtkSmoothPolyDataFilter,vtkCleanPolyData或者vtkPolyDataNormals.我甚至试图用边界表面提取vtkFeatureEdges,这导致了更糟糕的结果.甚至vtkFillHolesFilter没有产生任何可接受的结果.我的表面看起来完美无瑕,足以创造一个边界.

我不知道还有什么可以尝试的.其他结构也会发生这种情况.使用CAD工具修复它是不可能的,因为它应该是开箱即用的.请帮我!

这是几何不能正确关闭曲面的几何示例.这次我使用的vtkFillHolesFilter结果是结构内部的表面,而它们只应占据te对象的边界. 带错误的另一个几何体

如果你需要更详细的我的管道纲要,这里有:

  1. 使用创建表面 mayavi.mlab.contour3d
  2. 获得PolyData通过提取actor.mapper.input
  3. 将格式转换tvtk为常规格式vtk
  4. vtkClipClosedSurface 使用平面集合切除部分结构(当平面集合与结构边界相同时会发生错误)
  5. 想象它

编辑:好的,这没有得到足够的重视,所以我构建了一个最小的,完整的,可验证的工作示例来重现行为:

import numpy as np
import vtk  # VTK version 7.0
from mayavi import mlab  # mayavi version 4.4.4
from mayavi.api import Engine, OffScreenEngine
from tvtk.api import tvtk


def schwarz_D(x, y, z, linear_term=0): …
Run Code Online (Sandbox Code Playgroud)

python triangulation vtk python-3.x mayavi

6
推荐指数
1
解决办法
728
查看次数

使用vtk gdcm从多帧dicom映像获取单帧字节数组

我按如下方式读取多帧dicom并获取字节数组中图像的总像素数据.

 gdcm.ImageReader _reader = new gdcm.ImageReader();
_reader.SetFileName("FileName");
_reader.Read(); 
byte[] byteArray= new byte[_reader.GetImage().GetBufferLength()];
_reader.GetImage().GetBuffer(byteArray);
Run Code Online (Sandbox Code Playgroud)

但是对于具有超过300帧的多帧,它会给出内存不足的异常.所以我想一次提取一个字节数组中的单帧像素数据.任何的想法??

c# vtk gdcm

6
推荐指数
0
解决办法
319
查看次数

使用 VTK 放大图像中的某个点

我在 VTK 中有一个图像,正在使用 vtkImageViewer2 查看,并且我想放大用户单击的点。我在 Java 工作。有谁知道如何做到这一点?

谢谢

java image vtk

5
推荐指数
1
解决办法
3264
查看次数