已知信息:图像的维度Dim,Space,Origin,数据类型等信息
目标:用数组作为初始值,创建一个vtkImageData对象。
数据值来源:vector<unsigned char> Data;//经过前期计算,已经有值
vtkImageData* GenerateVTKImageData()
{
vtkInformation* pInfo = vtkInformation::New();
vtkImageData* pImageData = vtkImageData::New();
int extent[6] = { 0,Dim[0]- 1,0,Dim[1] - 1,0,Dim[2]-1 };
pImageData->SetExtent(extent);
pImageData->SetDimensions(Dim[0], Dim[1], Dim[2]);
pImageData->SetOrigin(Origin[0], Origin[1], Origin[2]);
pImageData->SetSpacing(Space[0], Space[1], Space[2]);
pImageData->SetScalarType(VTK_UNSIGNED_CHAR, pInfo);//类型可修改
pImageData->SetNumberOfScalarComponents(1, pInfo);//可修改,如2,3,4 pImageData->AllocateScalars(pInfo);
memcpy(pImageData->GetScalarPointer(), &Data[0], Data.size() * sizeof(unsigned char));
pInfo->Delete();
return pImageData;
}
附:SliceImageDataPtr对象的创建
已知信息:vtkImageData类型的数据
目标:创建SliceImageDataPtr对象
SliceImageDataPtr img(new SliceImageData);
img->SetImageData(pImageData);