# Robust ICP alignment tool

**URL:** <https://discourse.slicer.org/t/robust-icp-alignment-tool/16107>\
**Category:** Feature requests\
**Created:** [February 20, 2021, 7:46am UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107 "2021-02-20T07:46:50Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![manjula](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/manjula/32/80981_2.png) [@manjula](https://discourse.slicer.org/u/manjula)\
**Post date:** [February 20, 2021, 7:46am UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/1 "2021-02-20T07:46:50Z")

</div>

Hi,

I am again frustrated with the ICP alignment of the surface registration of 3D Slicer. I am just wondering is it not possible to use this method in 3D Slicer ?

> **[GitHub - patmo141/object\_alignment: picked points and ICP alignment addon for...](https://github.com/patmo141/object_alignment)**
>
> picked points and ICP alignment addon for Blender. Contribute to patmo141/object\_alignment development by creating an account on GitHub.

This is for Blender and even with the basic settings it gives excellent results within less than a 30 seconds out of the box and in 3D Slicer even with max setting results wich takes minutes results are sub par.

This is what I want to do,

[![](https://img.youtube.com/vi/5Esz1EAnao4/maxresdefault.jpg "Alignment ICP blender vs 3D Slicer") ](https://www.youtube.com/watch?v=5Esz1EAnao4)

Though I haven’t add the results of Model to Model distance and view this on shape population view I did it here and the ICP blender results are fantastic.  
I know I can get good results with Fiducuial registration method but ICP is much more convenient and is fully automatic rather than been semi automatic.

I can use both software to get what I want but it would be great if this problem many of us has can be fixed in 3D Slicer and I would very much appreciate if someone can fix this.

thank you

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [February 20, 2021, 4:06pm UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/2 "2021-02-20T16:06:33Z")

</div>

You can try and see if the rigid alignment in `alpaca` helps you. İt is available in SlicerMorph.

> **[SlicerMorph/SlicerMorph](https://github.com/SlicerMorph/SlicerMorph/tree/master/Docs/ALPACA)**
>
> master/Docs/ALPACA

---

<div class="post-metadata">

**Author:** ![manjula](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/manjula/32/80981_2.png) [@manjula](https://discourse.slicer.org/u/manjula)\
**Post date:** [February 21, 2021, 2:41am UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/3 "2021-02-21T02:41:16Z")

</div>

thank @muratmaga

is this statement still valid?

“Linux users can only use ALPACA in 3D Slicer versions with date [2020-09-25] or older”

Do I need an older version?

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [February 21, 2021, 2:55am UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/4 "2021-02-21T02:55:09Z")

</div>

Sorry that’s incorrect. Please use the latest preview and SlicerMorph.  
I will tell remove that.

---

<div class="post-metadata">

**Author:** ![patmo141](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@patmo141](https://discourse.slicer.org/u/patmo141)\
**Post date:** [October 8, 2022, 3:49pm UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/5 "2022-10-08T15:49:03Z")

</div>

Thanks for the shout! I worked pretty hard on the alignment tool, and while the underlying method is just plain ole ICP, I did some hacks that I found really helped users get good practical results.

1. Allow filtering of the regions to specific areas or areas to ignore in registrations
2. Dynamically changing the sample size, to allow the initial iterations to go fast (small sample size) and then increasing
3. Dynamically shrinking the minimum starting distance per iteration to refine the alignment

Glad to see people using it!

---

<div class="post-metadata">

**Author:** ![mau\_igna\_06](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/mau_igna_06/32/9056_2.png) [@mau\_igna\_06](https://discourse.slicer.org/u/mau_igna_06)\
**Post date:** [October 8, 2022, 9:57pm UTC](https://discourse.slicer.org/t/robust-icp-alignment-tool/16107/6 "2022-10-08T21:57:15Z")

</div>

> [@patmo141](#):
>
> Dynamically shrinking the minimum starting distance per iteration to refine the alignment

Hi. I don’t understand what you mean here.

Related: [Partial Surface Registration Tutorial - #4 by mau\_igna\_06](https://discourse.slicer.org/t/partial-surface-registration-tutorial/21118/5)
