标签: vtk

我是否错过了在Ubuntu 9.04上使用Python2.6绑定构建/安装VTK-5.4的步骤?

我使用源代码中的Python绑定成功构建并安装了VTK-5.4.然而,当我尝试在python中导入VTK时,它会产生以下Traceback错误

文件"",第1行,in

文件"/usr/local/lib/python2.6/dist-packages/VTK-5.4.2-py2.6.egg/vtk/ init .py",第41行,来自普通导入*

从libvtkCommonPython import*获取文件"/usr/local/lib/python2.6/dist-packages/VTK-5.4.2-py2.6.egg/vtk/common.py",第7行

ImportError:libvtkCommonPythonD.so.5.4:无法打开共享对象文件:没有这样的文件或目录

所以我想知道我错过了什么?我尝试将/usr/local/lib/vtk-5.4添加到PATH和PYTHONPATH环境变量中,但仍然得到相同的结果.任何提示或建议?

注意: libvtkCommonPythonD.so.5.4作为libvtkCommonPythonD.so.5.4.2的符号链接存在于/usr/local/lib/vtk-5.4中

python 3d vtk

3
推荐指数
1
解决办法
1812
查看次数

如何在右上角放置一个 vtkActor2D?

我怎样才能的位置vtkActor2D相对于右上渲染窗口的角落?我正在使用以下代码加载图像并将其显示为我的 3D 场景上的叠加层:

vtkPNGReader pngReader = vtkPNGReader.New();
pngReader.SetFileName("image.png");
pngReader.Update();

vtkImageMapper imageMapper = vtkImageMapper.New();
imageMapper.SetInputConnection(pngReader.GetOutputPort());
imageMapper.SetColorWindow(255);
imageMapper.SetColorLevel(127.5);

vtkActor2D imageActor = vtkActor2D.New();
imageActor.SetMapper(imageMapper);

vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
renderer.AddActor2D(imageActor);
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用设置演员的位置

imageActor.SetPosition(42, 42);
Run Code Online (Sandbox Code Playgroud)

但这当然是相对于左下角的。那么如何指定图像是相对于(分别在)渲染窗口的右上角绘制的,并且即使在调整渲染窗口的大小期间也保持在其相对位置?我现在在互联网上搜索了几个小时,但甚至找不到任何提示。

c# vtk

3
推荐指数
1
解决办法
1387
查看次数

如何将ASCII和BINARY数据同时写入同一文件

我为输出使用VTK数据类型.由于我的数据变得越来越大,用ASCII编写它需要相当长的时间,而这正是我迄今为止所做的.

我需要将其更改为二进制格式,但问题是该文件有一些标题(请参阅http://www.vtk.org/VTK/img/file-formats.pdf),即使对于二进制文件也需要用ASCII编写.

现在我没有足够的二进制格式经验,我的第一次尝试是通过打开两个流

ofstream asciiWriter(file_name.c_str());
ofstream binWriter(file_name.c_str(), ios::app | ios::binary);
Run Code Online (Sandbox Code Playgroud)

问题是输出似乎是无序的,asciiWriter并且binWriter没有以正确的顺序输出,所以我不能在ParaView中后处理我的文件.我试过的一件事是使用asciiWriter.flush()binWriter.flush()每当我完成标题/数据写入,但这也没有帮助.

我该怎么办?

PS:我不想使用VTK包本身...它的巨大并增加了我的代码依赖!

c++ file-io vtk paraview

3
推荐指数
1
解决办法
2444
查看次数

Ajust QVTKWidget到窗口

QVTKwidget当我使窗户展开或缩小时,如何调整?

我的布局中有更多小部件.我希望他们保持不变,只是扩大收缩QvtkWidget.我发现了一些关于布局的事情,但我无法使用它QVTKWidget.

qt vtk qvtkwidget

3
推荐指数
1
解决办法
1256
查看次数

如何将 3D vtkDataSet 转换为 numpy 数组?

我正在尝试读取一系列 DICOM 文件并将其渲染为 3D 模型。我已经做到了。但是我也希望能够在渲染之前删除某些切片。这就是我迷失的地方。我无法找到一种方法来访问加载的每个文件并删除我想要的文件。我读过我可以将数据集转换为 numpy 数组。但是,我不确定如何做到这一点。

    reader = vtkDICOMImageReader()
    reader.SetDirectoryName('loads a directory of DICOM files')
    reader.Update()

    imageDataGeometryFilter = vtkImageDataGeometryFilter()
    imageDataGeometryFilter.SetInputConnection(reader.GetOutputPort())
    imageDataGeometryFilter.Update()

    mapper = vtkPolyDataMapper()
    mapper.SetInputConnection(imageDataGeometryFilter.GetOutputPort())

    '''Here is where I want to take my vtkDataSet and convert it into a numpy array.
       Once in array form I can remove data that I do not want (ie DICOM slices).
       Then I want to convert it back into a vtkDataSet to continue program.
    '''



    actor = vtkActor()
    actor.SetMapper(mapper)

    ren = vtkRenderer()
    ren.AddActor(actor) …
Run Code Online (Sandbox Code Playgroud)

python numpy vtk

3
推荐指数
1
解决办法
2357
查看次数

如何用代码更改Mayavi中的字体类型和大小?

在Mayavi的3D图形中,我要更改轴标签和图例的字体类型和大小。我知道可以在UI中进行操作,但是如何通过编码进行操作?图例和轴标签中可以使用不同的字体类型吗?谢谢!

python numpy vtk mayavi

3
推荐指数
1
解决办法
2967
查看次数

VTK - 在renderWindow中更新vtkPolyData而不阻止交互

我使用VTK显示点云并在循环中更新它.第一次显示云时,窗口可以通过鼠标进行交互,如果我想更新云,我必须按'q',窗口将显示更新的云.但是,虽然云更新并在窗口中正确显示,但我失去了对窗口的控制(即不能使用鼠标移动或旋转窗口中的点云).

以下是重新创建问题的最小代码.我有一个Visualization类来处理它,它的初始化列表:

points(vtkSmartPointer<vtkPoints>::New())
, vertices(vtkSmartPointer<vtkCellArray>::New())
, pointsPolyData(vtkSmartPointer<vtkPolyData>::New())
, mapper(vtkSmartPointer<vtkPolyDataMapper>::New())
, actor(vtkSmartPointer<vtkActor>::New())
, renderer(vtkSmartPointer<vtkRenderer>::New())
, renderWindow(vtkSmartPointer<vtkRenderWindow>::New())
, renderWindowInteractor(vtkSmartPointer<vtkRenderWindowInteractor>::New())
Run Code Online (Sandbox Code Playgroud)

这是init函数:

void Visualization::init(const cv::Mat &point_cloud){
noPoints = point_cloud.cols * point_cloud.rows;

// Preallocate memory
points->SetNumberOfPoints(noPoints);

// Copy
int element_stripe = sizeof(float) * point_cloud.channels();
for (unsigned i = 0; i < noPoints; i++)
{

    float x = point_cloud.at<cv::Vec3f>(i)[0];
    float y = point_cloud.at<cv::Vec3f>(i)[1];
    float z = point_cloud.at<cv::Vec3f>(i)[2];

    vtkIdType pid[1] = {i};
    points->SetPoint(i, x, y, z);
    vertices->InsertNextCell(1, pid);
}

// Push …
Run Code Online (Sandbox Code Playgroud)

c++ vtk

3
推荐指数
1
解决办法
3714
查看次数

VTK:在 C++ 中从 vtu 非结构化网格中提取单元格数据

我需要从 .vtu(XML 非结构化网格)中提取所有单元格数据,以便在 c++ 程序中进行进一步操作。我对 VTK 很陌生...

      //read all the data from the file
      vtkSmartPointer<vtkXMLUnstructuredGridReader> reader =
      vtkSmartPointer<vtkXMLUnstructuredGridReader>::New();
      reader->SetFileName(filename.c_str());
      reader->Update();

      unsigned int cellNumber = reader->GetOutput()->GetNumberOfCells();
      cout << "There are " << cellNumber << " input cells." << endl;
Run Code Online (Sandbox Code Playgroud)

这是正确的 - 单元格编号显示正确。现在如何访问存储在 .vtu 文件中的不同 CellArrays 属性的名称,然后访问它们的实际数值?任何帮助表示赞赏!干杯,多马诺夫

c++ vtk

3
推荐指数
1
解决办法
1662
查看次数

找不到vtkRenderer/vtkRenderWindow的覆盖

我是vtk的新手,当我运行一个小例子时,它会产生两个错误,

找不到vtkRenderer的覆盖

找不到vtkRenderWindow的覆盖

我搜索了这个问题,找不到合适的解决方案.

cmake vtk

3
推荐指数
1
解决办法
2105
查看次数

如何以编程方式呈现 qml 中的 vtk 项目?

到目前为止,我知道我们在 QML 中有两个线程,我们的主应用程序线程和我们的“场景图”线程:http : //doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html

我已经在这个链接的帮助下实现了我自己的 vtkQmlItem:http ://doc.qt.io/qt-5/qtquick-scenegraph-openglunderqml-example.html

我注意到我的 vtkscene 仅在 qmlafterrendering流发出信号时才呈现。

到目前为止,一切正常并且运行良好,我可以看到我的 vtk 场景,甚至可以与之交互。

但我也想以编程方式渲染我的 vtk 场景,因为我想通过围绕 vtk 对象移动相机来制作动画。

renderer->render()直接调用会显示很多vtk错误,而且似乎不是这样做的好方法。

this->window()->update()当我希望立即处理它时,调用似乎将事件放在 eventLoop 中。我设法让它立即工作的唯一方法是使用 QApplication::processEvents(),这是一个我不喜欢的黑客,并且会喜欢另一个解决方案。

所以我不喜欢的工作解决方案的伪代码如下:

for (int i = 0; i < 50; i++)
{
   ChangeCameraPosition(i); // Change the position and orientation of the vtk camera
   this->window()->update();
   QApplication::processEvents(); // The hack I don't like
   QThread::msleep(500);
}
Run Code Online (Sandbox Code Playgroud)

opengl events qt vtk qml

3
推荐指数
2
解决办法
3173
查看次数

标签 统计

vtk ×10

c++ ×3

python ×3

numpy ×2

qt ×2

3d ×1

c# ×1

cmake ×1

events ×1

file-io ×1

mayavi ×1

opengl ×1

paraview ×1

qml ×1

qvtkwidget ×1