# Difference Surface Registration vs Model Registration

**URL:** <https://discourse.slicer.org/t/difference-surface-registration-vs-model-registration/16525>\
**Category:** Support\
**Tags:** registration, stl\
**Created:** [March 13, 2021, 10:15pm UTC](https://discourse.slicer.org/t/difference-surface-registration-vs-model-registration/16525 "2021-03-13T22:15:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sfglio](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sfglio/32/3346_2.png) [@sfglio](https://discourse.slicer.org/u/sfglio)\
**Post date:** [March 13, 2021, 10:15pm UTC](https://discourse.slicer.org/t/difference-surface-registration-vs-model-registration/16525/1 "2021-03-13T22:15:33Z")

</div>

I am wondering where exactly is the difference between surface registration modul and the model registration (of SlicersIGT)

Model registration states it: iterative closest point

Surface Registration: which method is used here???

BTW: I noticed that if you want to register a transformed STL using model registration it does **not** take the transformation into account  
however  
surface registration does what it should: it registers the transformed STL

So can I conclude that the results won’t differ beside the above mentioned fact?

---

<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:** [March 14, 2021, 4:11am UTC](https://discourse.slicer.org/t/difference-surface-registration-vs-model-registration/16525/2 "2021-03-14T04:11:32Z")

</div>

They both use the same ICP algorithm implementation (vtkIterativeClosestPointTransform):

> <https://github.com/DCBIA-OrthoLab/CMFreg/blob/master/SurfaceRegistration/SurfaceRegistration.py#L722>

> <https://github.com/SlicerIGT/SlicerIGT/blob/master/ModelRegistration/ModelRegistration.py#L187>

The difference is in GUI and workflow. SurfaceRegistration includes both landmark registration and ICP; while SlicerIGT implements this in two modules (Fiducial Registration Wizard and Model Registration).
