我正在尝试使用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。查看一些宏预处理程序可能会有所帮助。