# Get new fiducial position after transform

**URL:** <https://discourse.slicer.org/t/get-new-fiducial-position-after-transform/18205>\
**Category:** Support\
**Created:** [June 18, 2021, 12:58pm UTC](https://discourse.slicer.org/t/get-new-fiducial-position-after-transform/18205 "2021-06-18T12:58:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sandyaa0313](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sandyaa0313/32/11566_2.png) [@sandyaa0313](https://discourse.slicer.org/u/sandyaa0313)\
**Post date:** [June 18, 2021, 12:58pm UTC](https://discourse.slicer.org/t/get-new-fiducial-position-after-transform/18205/1 "2021-06-18T12:58:14Z")

</div>

Operating system:Windows10  
Slicer version:4.11.20200930  
Expected behavior:  
Actual behavior:

I want to do some functions similar to fiducial registeration wizard in SlicerIGT by my own python module.  
Now I can retrieve the transform matrix, but I don’t know how to get the new fiducial position of f1 node after transform.  
Thanks!

Here is my code:

```python
transformNode = slicer.mrmlScene.AddNewNodeByClass("vtkMRMLLinearTransformNode")
transformNode.SetName("Registration Transform")
parameters = {}
f1 = slicer.util.getNode("Fiducials")
f2 = slicer.util.getNode("Fiducials2")

parameters["saveTransform"] = transformNode.GetID()
parameters["movingLandmarks"] = f1.GetID() # fiducial points
parameters["fixedLandmarks"] = f2.GetID() # fiducial points
fiduciaReg = slicer.modules.fiducialregistration
slicer.cli.runSync(fiduciaReg, None, parameters)

tmatrix = vtk.vtkMatrix4x4()
t1 = slicer.util.getNode(parameters["saveTransform"])
t2 = slicer.util.getNode(parameters["movingLandmarks"])
t1.GetMatrixTransformToParent(tmatrix) 
transformMatrix = slicer.util.arrayFromVTKMatrix(tmatrix)

```

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [June 18, 2021, 1:13pm UTC](https://discourse.slicer.org/t/get-new-fiducial-position-after-transform/18205/2 "2021-06-18T13:13:50Z")

</div>

You can use [`slicer.util.arrayFromMarkupsControlPoints`](https://slicer.readthedocs.io/en/latest/developer_guide/slicer.html#slicer.util.arrayFromMarkupsControlPoints) function to get fiducial point positions as a numpy array. Specify `world=True` to get the transformed positions.

---

<div class="post-metadata">

**Author:** ![sandyaa0313](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sandyaa0313/32/11566_2.png) [@sandyaa0313](https://discourse.slicer.org/u/sandyaa0313)\
**Post date:** [June 24, 2021, 6:45am UTC](https://discourse.slicer.org/t/get-new-fiducial-position-after-transform/18205/3 "2021-06-24T06:45:31Z")

</div>

Thank you ! I get it !
