#include <iostream>
int
main(int argc, char * argv[])
{
if (argc != 5)
{
std::cerr << "Usage: " << std::endl
<< argv[0] << " inputImageFile outputImageFile nNewWidth nNewHeight" << std::endl;
return EXIT_FAILURE;
}
using T_InputPixel = unsigned char;
const auto input = itk::ReadImage<T_Image>(argv[1]);
_pTransform->SetIdentity();
_pInterpolator->SetSplineOrder(3);
_pResizeFilter->SetTransform(_pTransform);
_pResizeFilter->SetInterpolator(_pInterpolator);
const double vfOutputOrigin[2] = { 0.0, 0.0 };
_pResizeFilter->SetOutputOrigin(vfOutputOrigin);
unsigned int nNewWidth = std::stoi(argv[3]);
unsigned int nNewHeight = std::stoi(argv[4]);
unsigned int nOldWidth = vnInputSize[0];
unsigned int nOldHeight = vnInputSize[1];
const T_Image::SpacingType & vfInputSpacing = input->GetSpacing();
double vfOutputSpacing[2];
vfOutputSpacing[0] = vfInputSpacing[0] * (double)nOldWidth / (double)nNewWidth;
vfOutputSpacing[1] = vfInputSpacing[1] * (double)nOldHeight / (double)nNewHeight;
_pResizeFilter->SetOutputSpacing(vfOutputSpacing);
_pResizeFilter->
SetSize(vnOutputSize);
_pResizeFilter->SetInput(input);
return EXIT_SUCCESS;
}