What's wrong with all empty output ?

#include "itkAffineTransform.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkLinearInterpolateImageFunction.h"
#include "itkMatrix.h"
#include "itkNIFTIImageIO.h"
#include "itkNIFTIImageIOFactory.h"
#include "itkResampleImageFilter.h"

#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
  // if (argc != 5)
  // {
  //  std::cerr << "Usage: " << std::endl;
  //  std::cerr << argv[0];
  //  std::cerr << " <InputFileName> <OutputFileName>";
  //  std::cerr << " <numberOfIterations> <timeStep> <conductance>";
  //  std::cerr << std::endl;
  //  return EXIT_FAILURE;
  //}

  const char *inputfilename = argv[1];
  const char *referencefilename = argv[2];
  const char *transformfilename = argv[3];
  const char *outputfilename = argv[4];

  constexpr unsigned int Dimension = 3;

  using PixelType = unsigned char;
  using ImageType = itk::Image<PixelType, Dimension>;
  using ScalarType = double;

  using ReaderType = itk::ImageFileReader<ImageType>;
  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName("D:\\ITK\\Test\\Cartilage.nii");
  try
  {
    reader->Update();
  }
  catch (itk::ExceptionObject &err)
  {
    std::cerr << "ExceptionObject caught !" << std::endl;
    std::cerr << err << std::endl;
  }
  // std::cerr << reader->GetOutputs();
  // Since the goal of the example is to catch the exception,
  // we declare this a success.

  using ReaderType = itk::ImageFileReader<ImageType>;
  ReaderType::Pointer reader2 = ReaderType::New();
  reader2->SetFileName("D:\\ITK\\Test\\CTA.nii");
  reader2->Update();

  // Since the goal of the example is to catch the exception,
  // the example fails if it is not caught.

  ImageType::Pointer inputImage = reader->GetOutput();
  ImageType::Pointer referenceImage = reader2->GetOutput();
  ImageType::RegionType region = inputImage->GetLargestPossibleRegion();
  ImageType::SizeType size = region.GetSize();
  cout << size << endl;
  ImageType::SpacingType spacing = inputImage->GetSpacing();
  cout << spacing << endl;
  using AffineTransformType = itk::AffineTransform<double, Dimension>;
  AffineTransformType::Pointer affineTransform = AffineTransformType::New();

  using MatrixType = itk::Matrix<double, Dimension, Dimension>;
  using VectorType = itk::Vector<double, Dimension>;
  MatrixType M;
  VectorType N;

  double data[Dimension + 1][Dimension + 1];
  int i = 0, j = 0, count = 16;
  ifstream filestream;
  filestream.open(argv[3], ios::in);

  while (!filestream.eof() && count > 0)
  {
    count--;
    

    double tmp = 0;
    filestream >> tmp;
    if (i == 4)
    {
      i = 0;
      j = j + 1;
    }
    data[j][i] = tmp;
    i = i + 1;
  }
  filestream.close();
  for (int i = 0; i < Dimension; i++)
    for (int j = 0; j < Dimension; j++)
    {
      M(i, j) = data[i][j];
      cout << M(i, j) << endl;
      // M(i, j) = 0;
    }
  for (int i = 0; i < Dimension; i++)
  {
    N[i] = data[i][Dimension];
    // N[i] = 0;
  }
  AffineTransformType::MatrixType Matrix = affineTransform->GetMatrix();
  affineTransform->SetMatrix(M);
  //affineTransform->SetOffset(N);
  cout << affineTransform->GetMatrix() << " " << endl;
  using NearestNeighborInterpolatorType = itk::LinearInterpolateImageFunction <ImageType, ScalarType>;
  NearestNeighborInterpolatorType::Pointer interpolator = NearestNeighborInterpolatorType::New();

  using ResampleFilterType = itk::ResampleImageFilter<ImageType, ImageType>;
  ResampleFilterType::Pointer resampleFilter = ResampleFilterType::New();

  resampleFilter->SetInput(inputImage);
  resampleFilter->SetTransform(affineTransform);
  resampleFilter->SetInterpolator(interpolator);
  resampleFilter->SetSize(size);
  resampleFilter->SetOutputOrigin(inputImage->GetOrigin());
  resampleFilter->SetOutputSpacing(spacing);
  cout << resampleFilter->GetOutput() << "output" << endl;

  using WriterType = itk::ImageFileWriter<ImageType>;
  WriterType::Pointer writer = WriterType::New();
  writer->SetFileName(outputfilename);
  writer->SetInput(resampleFilter->GetOutput());

  try
  {
    writer->Update();
  }
  catch (itk::ExceptionObject &error)
  {
    std::cerr << "Error: " << error << std::endl;
    return EXIT_FAILURE;
  }
  cout << "aaa" << endl;
  return 0;
}

this is my code with empty output ? what’s wrong with the code ? I read a nii form input and need to resample it with affinetransform,HOWEVER, I get a empty output