static const unsigned int dim = OutputImageType::ImageDimension;
typename OutputImageType::SpacingType spacing;
typename OutputImageType::SizeType size;
+ typename OutputImageType::PointType origin;
+ typename OutputImageType::DirectionType direction;
if (mArgsInfo.like_given) {
itk::ImageIOBase::Pointer header = clitk::readImageHeader(mArgsInfo.like_arg);
for(unsigned int i=0; i<dim; i++){
spacing[i] = header->GetSpacing(i);
size[i] = header->GetDimensions(i);
+ origin[i] = header->GetOrigin(i);
+ }
+ for(unsigned int i=0; i<dim; i++) {
+ for(unsigned int j=0;j<dim;j++) {
+ direction(i,j) = header->GetDirection(i)[j];
+ }
}
filter->SetOutputSpacing(spacing);
filter->SetOutputSize(size);
+ filter->SetOutputOrigin(origin);
+ filter->SetOutputDirection(direction);
}
else {
std::cerr << "*** Warning : I could not read '" << mArgsInfo.like_arg << "' ***" << std::endl;
size[i] = mArgsInfo.size_arg[i];
filter->SetOutputSize(size);
}
+ for(unsigned int i=0; i<dim; i++){
+ origin[i] = input->GetOrigin()[i];
+ }
+ for(unsigned int i=0; i<dim; i++) {
+ for(unsigned int j=0;j<dim;j++) {
+ direction(i,j) = input->GetDirection()[i][j];
+ }
+ }
+ filter->SetOutputOrigin(origin);
+ filter->SetOutputDirection(direction);
}
// Set temporal dimension