ITK spacing的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double spacing[3];
spacing[0] = reader->GetOutput()->GetSpacing()[0];
spacing[1] = reader->GetOutput()->GetSpacing()[1];
spacing[2] = reader->GetOutput()->GetSpacing()[2];
int dims[3];
dims[0] = reader->GetOutput()->GetBufferedRegion().GetSize()[0];
dims[1] = reader->GetOutput()->GetBufferedRegion().GetSize()[1];
dims[2] = reader->GetOutput()->GetBufferedRegion().GetSize()[2];


typedef itk::JoinSeriesImageFilter<Image2DType, InputImageType> JoinSeriesFilterType;
JoinSeriesFilterType::Pointer joinFilter = JoinSeriesFilterType::New();
for (int i = 0; i < dims[2]; i++)
{
// 提取
Image2DType::Pointer slice = GetSlice(i, output);

joinFilter->SetInput(i, slice);
}
joinFilter->Update();

以上代码会导致reader->GetOutput()和joinFilter->GetOutput()数据的spacing信息不一致。

JoinSeriesImageFilter会将z轴方向的spacing固定为1。

坚持原创技术分享,您的支持将鼓励我继续创作!