ITK spacing的问题

来源:互联网 发布:linux编译链接 编辑:程序博客网 时间:2024/05/22 19:19
    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。