- typedef itk::JoinSeriesImageFilter<SliceType, ImageType> JoinSeriesFilterType;
- typename JoinSeriesFilterType::Pointer joinFilter = JoinSeriesFilterType::New();
- joinFilter->SetOrigin(input->GetOrigin()[GetDirection()]);
- joinFilter->SetSpacing(input->GetSpacing()[GetDirection()]);
- for(unsigned int i=0; i<mInputSlices.size(); i++) {
- // DD(mInputSlices[i]->GetLargestPossibleRegion().GetIndex());
-// DD(mInputSlices[i]->GetLargestPossibleRegion().GetSize());
-// DD(mInputSlices[i]->GetRequestedRegion().GetIndex());
-// DD(mInputSlices[i]->GetRequestedRegion().GetSize());
- joinFilter->PushBackInput(mInputSlices[i]);
- //SetInput(i, mInputSlices[i]);
+ // Join the slices
+ m_working_input = clitk::JoinSlices<ImageType>(mInputSlices, input, GetDirection());
+ this->template StopCurrentStep<ImageType>(m_working_input);
+
+ //--------------------------------------------------------------------
+ // Step 7: autocrop
+ if (this->GetAutoCropFlag()) {
+ this->StartNewStep("Final AutoCrop");
+ typedef clitk::AutoCropFilter<ImageType> CropFilterType;
+ typename CropFilterType::Pointer cropFilter = CropFilterType::New();
+ cropFilter->SetInput(m_working_input);
+ cropFilter->ReleaseDataFlagOff();
+ cropFilter->Update();
+ m_working_input = cropFilter->GetOutput();
+ this->template StopCurrentStep<ImageType>(m_working_input);