VTK reader 输出
VTK reader output
我用 VTK 读取了一个 dicom 文件,我想获取它的像素信息。错误是由最后一行引起的。错误信息是 'vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase *)': cannot convert argument 1 from 'T *' to 'vtkObjectBase *'
。但是 typeid(reader->GetOutput()).name()
实际上是 vtkImageData。为什么会出现此错误?
std::string inputFilename = "C:\Users\26327\Desktop\dll4sw\data\SE3\IM0.dcm";
vtkSmartPointer<vtkDICOMImageReader> reader =
vtkSmartPointer<vtkDICOMImageReader>::New();
reader->SetFileName(inputFilename.c_str());
reader->Update();
cout << typeid(reader->GetOutput()).name() << endl;
vtkSmartPointer<vtkImageData> vtkImage = reader->GetOutput();
您可以尝试以下代码来显示差异:
vtkSmartPointer<vtkImageData> vtkImage = vtkSmartPointer<vtkImageData>::New();
cout << typeid(vtkImage).name() << endl;
auto result = reader->GetOutput();
cout << typeid(result ).name() << endl;
可能会给你一些提示。
我用 VTK 读取了一个 dicom 文件,我想获取它的像素信息。错误是由最后一行引起的。错误信息是 'vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase *)': cannot convert argument 1 from 'T *' to 'vtkObjectBase *'
。但是 typeid(reader->GetOutput()).name()
实际上是 vtkImageData。为什么会出现此错误?
std::string inputFilename = "C:\Users\26327\Desktop\dll4sw\data\SE3\IM0.dcm";
vtkSmartPointer<vtkDICOMImageReader> reader =
vtkSmartPointer<vtkDICOMImageReader>::New();
reader->SetFileName(inputFilename.c_str());
reader->Update();
cout << typeid(reader->GetOutput()).name() << endl;
vtkSmartPointer<vtkImageData> vtkImage = reader->GetOutput();
您可以尝试以下代码来显示差异:
vtkSmartPointer<vtkImageData> vtkImage = vtkSmartPointer<vtkImageData>::New();
cout << typeid(vtkImage).name() << endl;
auto result = reader->GetOutput();
cout << typeid(result ).name() << endl;
可能会给你一些提示。