有人能指出我如何绘制似乎连接的多条线的正确方向吗?我发现vtkLine其SetPoint1和SetPoint2功能.然后我找到了vtkPolyLine,但似乎没有任何添加,插入或设置功能.同样的vtkPolyVertex.
是否有一个基本功能允许我只是在其内部数据的末尾推送一些点并简单地渲染它?或者,如果没有这样的功能/对象,那么该怎么办?
在一个相关的主题:我不太喜欢vtk.是否有可视化工具包,可能功能有限,更容易使用?
提前致谢
我在转换某些VTK医疗数据文件时遇到问题:我安装了ParaView但无法将这些VTK文件转换为正确的格式.如何使用ParaView将这些文件转换为XML,JSON或COLLADA文件?
我在一个项目中使用VTK,似乎无法弄清它的一部分。我试图遍历几千个点,并找到每个点的5个最接近的点。看起来像是简单的for循环操作,但是我的问题是由于某种原因,我被告知相同的5点是我数据中每个点的最近点...我知道这是不正确的。我将在下面附加我要描述的部分代码:
//test
vtkSmartPointer<vtkPointSource> pointSource =
vtkSmartPointer<vtkPointSource>::New();
pointSource->SetNumberOfPoints( Output->GetNumberOfPoints() );
pointSource->Update();
vtkSmartPointer<vtkKdTreePointLocator> Tree =
vtkSmartPointer<vtkKdTreePointLocator>::New();
Tree->SetDataSet( pointSource->GetOutput() );
Tree->BuildLocator();
unsigned int k = 5;
double testpoint[3];
vtkSmartPointer<vtkIdList> result =
vtkSmartPointer<vtkIdList>::New();
for(vtkIdType n = 0; n < Output->GetNumberOfPoints(); n++)
{
result->Reset();
Output->GetPoint( n,testpoint );
Tree->Update();
std::cout << "Point: " << testpoint[0] << ", " << testpoint[1] << ", " << testpoint[2] << ": " << endl;
Tree->FindClosestNPoints(k, testpoint, result);
for(vtkIdType i = 0; i < k; i++)
{
vtkIdType point_ind = result->GetId(i); …Run Code Online (Sandbox Code Playgroud) 我想在c ++中使用VTK并在3D中绘制分子.我有一个代表原子位置的向量和另一个代表每个原子大小的向量.我怎么能这样做?我是否需要为每个原子创建一个新的sphere_source.
vector< vector <double> > Positions;
vector< double > Sizes;
Run Code Online (Sandbox Code Playgroud) 我正在使用ITK进行一些图像处理,然后使用VTK以.png格式打印结果,但输出图像始终为黑色.
目前,我正在使用itk :: ImagetoVTKImageFilter(在我的代码中为typedeffed to ITKtoVTKFilterType)将itk :: Image转换为vtk :: vtkImageData.
ITKtoVTKFilterType::Pointer itk2vtkGray = ITKtoVTKFilterType::New();
itk2vtkGray->SetInput(grayBinary); //grayBinary is of type itk::Image<unsigned short, 2>
itk2vtkGray->Update();
vtkSmartPointer<vtkImageData> grayVTK = vtkSmartPointer<vtkImageData>::New();
grayVTK->SetExtent(extent);
grayVTK->SetSpacing(m_spacing);
grayVTK->SetScalarTypeToUnsignedShort();
grayVTK->SetNumberOfScalarComponents(1);
grayVTK->AllocateScalars();
grayVTK->DeepCopy(static_cast<vtkImageData*>(itk2vtkGray->GetOutput()));
//grayVTK = itk2vtkGray->GetOutput();
Run Code Online (Sandbox Code Playgroud)
我甚至使用以下代码确认我的VTK ImageData包含255或0的值.
int *dims = grayVTK->GetDimensions();
std::cout << "Dims: " << " x: " << dims[0] << " y: " << dims[1] << " z: " << dims[2] << std::endl;
std::cout << "Number of points: " << grayVTK->GetNumberOfPoints() << std::endl;
std::cout << "Number of …Run Code Online (Sandbox Code Playgroud) 将一些代码从vtk 5.10迁移到vtk 6.1,我有几个代码片段如下:
vtkSmartPointer<vtkImageData> img = vtkSmartPointer<vtkImageData>::New();
// ... initialize img somehow, e.g. copy from other image:
img->DeepCopy(otherImg);
img->SetInformation(otherImg->getInformation());
// the problematical statement:
img->Update();
Run Code Online (Sandbox Code Playgroud)
在调用时Update(),编译器现在抱怨没有这样的函数(不再).来自vtk的迁移站点并没有真正告诉我太多 - 我相信这属于删除数据对象在管道上的依赖性部分,但因为它不是填充我的图像的算法,所以我无法调用更新在算法上.
类似于自定义填充vtkPolyData对象.
我现在的问题是:对Update的调用是否必要(不再?),我可以将其删除吗?或者我需要更换它?
我不得不说我对vtk比较陌生,所以如果有一些基本上很简单的东西,我很想知道如果你能指出我的话我会很高兴的!
我试图围绕X轴旋转我的数据.我发现我应该使用mayavi.tools.pipeline.transform_data函数,但我无法找到使用它的方法...
我需要将旋转矩阵应用于数据,但我无法想象如何使用该函数...任何提示?
我使用pyqt在python中构建了一个gui,它导入了VTK.我没有运气得到py2exe,pyinstaller cx_freeze等与它一起工作......我得到一个错误说下面的内容使用pyinstaller:
vtk.__helper.LinkError: No module named vtkFilteringPythonSIP
Run Code Online (Sandbox Code Playgroud)
我已经设法使用pyinstaller制作不包含vtk代码的工作可执行文件,所以我现在倾向于此,但是如果有人可以帮我编写代码来实现这个目的:http://www.vtk.org/ Wiki/VTK/Examples/Python/Widgets/EmbedPyQt代码作为可执行文件工作然后我将永远感激,但它已经完成.我已经尝试将它抱怨的文件添加到pyinstaller钩子但仍然没有运气.是否有旧的/开发版本已修复此错误?虽然我找到了同一条船上的人,但在信息高速公路上找不到任何解决方案.我正在使用最新版本的Python(X,Y).
我正在尝试与QVTKOpenGLWidgetQTDesigner一起使用,vtkGenericOpenGlRenderWindow但获得了一个黑色窗口。当我将PCLVizualizerPointCloud Library(PCL)与一起使用时vtkGenericOpenGlRenderWindow,一切正常。我正在尝试以与PCL相同的方式创建自定义查看器。
QMainPanel::QMainPanel( HWND hWnd ) :
QWinWidget( hWnd ),
ui(new Ui::QMainPanel)
{
ui->setupUi(this);
rendererTest = vtkSmartPointer<vtkRenderer>::New();
rendererTest->GradientBackgroundOn();
rendererTest->SetBackground(0.27,0.27,0.27);
rendererTest->SetBackground2(0.44,0.44,0.44);
windowTest = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
windowTest->AddRenderer(rendererTest);
interactorTest = vtkSmartPointer<vtkRenderWindowInteractor>::New();
interactorTest->SetRenderWindow( windowTest );
ui->openGLWidget->SetRenderWindow( windowTest ); // QVTKOpenGLWidget *openGLWidget;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:删除“交互器”解决了我的问题。
I have a VTK file (unstructured grid) with points and cells.
I can import the file and read it into using the meshio python package.
If I type the command mesh.cells I see a dictionary called 'hexahedron' with an array made up of lists inside like this:
{'hexahedron': array([[ 0, 162, 185, ..., 163, 186, 23],
[162, 329, 351, ..., 330, 352, 186],
[329, 491, 514, ..., 492, 515, 352],
...,
[483, 583, 600, ..., 584, 601, 490],
[583, …Run Code Online (Sandbox Code Playgroud)