# Generate inverse warp images

**URL:** <https://discourse.itk.org/t/generate-inverse-warp-images/401>\
**Category:** Algorithms\
**Created:** [November 8, 2017, 7:14pm UTC](https://discourse.itk.org/t/generate-inverse-warp-images/401 "2017-11-08T19:14:50Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ray](https://discourse.itk.org/letter_avatar_proxy/v4/letter/r/e9a140/32.png) [@Ray](https://discourse.itk.org/u/Ray)\
**Post date:** [November 8, 2017, 7:14pm UTC](https://discourse.itk.org/t/generate-inverse-warp-images/401/1 "2017-11-08T19:14:50Z")

</div>

I use rigid registration to get a transformation estimation represented by six numbers (three for rotation, three for translation). And I use the following code to generate the corresponding warp image. I wonder if there is any way to generate an inverse warp image? i.e. transformation from the fixed image to the moving image (Thanks!)

```
 /** Create an setup displacement field generator. */
  DisplacementFieldGeneratorType::Pointer dispfieldGenerator =
                                                 DisplacementFieldGeneratorType::New();
  dispfieldGenerator->UseReferenceImageOn();
  dispfieldGenerator->SetReferenceImage( fixedImage );
  dispfieldGenerator->SetTransform( outputTransform );
  try
    {
    dispfieldGenerator->Update();
    }
  catch ( itk::ExceptionObject & err )
    {
    std::cerr << "Exception detected while generating deformation field";
    std::cerr << " : " << err << std::endl;
    return EXIT_FAILURE;
    }

  typedef itk::ImageFileWriter< DisplacementFieldImageType > FieldWriterType;
  FieldWriterType::Pointer fieldWriter = FieldWriterType::New();

  fieldWriter->SetInput( dispfieldGenerator->GetOutput() );
  fieldWriter->SetFileName( warpFieldName );
  try
    {
    fieldWriter->Update();
    }
  catch( itk::ExceptionObject & excp )
    {
    std::cerr << "Exception thrown " << std::endl;
    std::cerr << excp << std::endl;
    return EXIT_FAILURE;
    }
```

---

<div class="post-metadata">

**Author:** ![dzenanz](https://discourse.itk.org/user_avatar/discourse.itk.org/dzenanz/32/1093_2.png) [@dzenanz](https://discourse.itk.org/u/dzenanz)\
**Post date:** [November 8, 2017, 8:55pm UTC](https://discourse.itk.org/t/generate-inverse-warp-images/401/2 "2017-11-08T20:55:35Z")

</div>

You should try `invT = outputTransform.GetInverseTransform();` and then `dispfieldGenerator->SetTransform( invT );`
