我正在尝试使用vtkImageImport加载原始图像数据并显示2D纹理:

    char* data = (char*)imgData->data(); // size is 786432

    vtkSmartPointer<vtkImageImport> importer = vtkSmartPointer<vtkImageImport>::New();
    importer->SetWholeExtent(0, 511, 0, 511, 0, 0);
    importer->SetDataExtentToWholeExtent();
    importer->SetDataScalarTypeToUnsignedChar();
    importer->SetImportVoidPointer(data);
    importer->SetNumberOfScalarComponents(3);
    importer->Update();
    double bounds[6];
    vtkImageData* vtk_image_data = importer->GetOutput(); // this is null
    vtk_image_data->GetBounds(bounds);

当我调用importer->Update()时,将调用vtkDataSet的析构函数,并且importer->GetOutput()返回null ...为什么会发生这种情况?

最佳答案

我在带有VTK 6.2.0的MSVC 2010上编译并运行了您的代码。我没有得到任何空的vtk_image_data。查看一些宏预处理程序可能会有所帮助。

10-07 20:22