# Getting Displacement Data for specific points

**URL:** https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753
**Category:** Algorithms
**Tags:** itk, simple, simpleitk, registration
**Created:** [February 24, 2023, 2:21pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753 "2023-02-24T14:21:25Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:21pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/1 "2023-02-24T14:21:25Z")

</div>

I successfully applied the following type of registration, and would like to query specific points within the image and get the corresponding displacement for each point in the image.

I have a composite outTx and can’t figure out how to extract singular point transforms through this method. I would like to eventually get the displacement in pixels for specific points throughout the image.

Any help is very much appreciated. Thank you!!

[https://simpleitk.readthedocs.io/en/master/link\_ImageRegistrationMethodDisplacement1\_docs.html](https://simpleitk.readthedocs.io/en/master/link_ImageRegistrationMethodDisplacement1_docs.html)

---

<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: [February 24, 2023, 2:29pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/2 "2023-02-24T14:29:11Z")

</div>

You might need to use the inverse of the registration transform.

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:31pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/3 "2023-02-24T14:31:53Z")

</div>

@dzenanz ,  
Is there a function that will allow me to pick a certain point in the fixed image, then determine the inverse transform values for the specific point?

---

<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: [February 24, 2023, 2:33pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/4 "2023-02-24T14:33:42Z")

</div>

How about `invTx = outTx.GetInverseTransform()`, and then use `invTx.TransformPoint()`?

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:35pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/5 "2023-02-24T14:35:56Z")

</div>

Does TrasnformPoint() get the transform applied to the specific point (ie. translation)? I am more interested in the number than just transforming a specific point

---

<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: [February 24, 2023, 2:39pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/6 "2023-02-24T14:39:56Z")

</div>

Yes, when you transform a point, you get the transformed coordinates.

You can get translation from the transform, via `outTx.GetTranslation()`, see [GetTranslation()](https://itk.org/Doxygen/html/classitk_1_1MatrixOffsetTransformBase.html#acce63cf03fc9815575f46edecdab9699) docs.

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:40pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/7 "2023-02-24T14:40:05Z")

</div>

Or do I just then need to extract the points of interest from the list of parameters?

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:40pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/8 "2023-02-24T14:40:35Z")

</div>

Wonderful, I will give this a shot. Thank you so much @dzenanz !!!

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [February 24, 2023, 2:57pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/9 "2023-02-24T14:57:43Z")

</div>

So once I get the translation, these values will be in physical units, so I need to use GetSpacing() to convert to pixels correct??

---

<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: [February 24, 2023, 3:02pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/10 "2023-02-24T15:02:12Z")

</div>

You can convert physical coordinates (e.g. points) to pixel indices via [TransformPhysicalPointToContinuousIndex()](https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#ad497be6fe6d05121acbdb0b2906668b9) or [TransformPhysicalPointToIndex](https://itk.org/Doxygen/html/classitk_1_1ImageBase.html#a5c4f893aff7e68ffdc6ec4d6f592bb18).

---

<div class="post-metadata">

### Author: ![elapins](https://discourse.itk.org/letter_avatar_proxy/v4/letter/e/96bed5/32.png) [@elapins](https://discourse.itk.org/u/elapins)
#### Post date: [March 1, 2023, 3:57pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/11 "2023-03-01T15:57:14Z")

</div>

@dzenanz I tried using this code, but kept getting errors at this point. Is this because my outTx is a composite transform? Is it possible to invert Composite Transforms?

Thank you!

---

<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: [March 1, 2023, 5:17pm UTC](https://discourse.itk.org/t/getting-displacement-data-for-specific-points/5753/12 "2023-03-01T17:17:23Z")

</div>

> [@elapins](#):
>
> Is it possible to invert Composite Transforms?

Yes, see:

> <https://github.com/InsightSoftwareConsortium/ITK/blob/2ec7cd1cf7f9b9afeff9cdfd88dbb0e463156d9d/Modules/Core/Transform/include/itkCompositeTransform.h#L233-L239>

After transforming points, you should also check whether they are inside the image before trying to use their indices.
