# Is there any tools to find correspondence between two meshes in vtk?

**URL:** https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341
**Category:** Support
**Created:** [October 2, 2020, 11:33pm UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341 "2020-10-02T23:33:29Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![xiaozhi\_zhu](https://discourse.vtk.org/user_avatar/discourse.vtk.org/xiaozhi_zhu/32/2401_2.png) [@xiaozhi\_zhu](https://discourse.vtk.org/u/xiaozhi_zhu)
#### Post date: [October 2, 2020, 11:33pm UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/1 "2020-10-02T23:33:29Z")

</div>

Hi everyone,  
I am a beginner in this area and hope to find some help here. Currently, I try to find a point-to-point correspondence between two meshes with each one being a 3D mesh of vascular. Two meshes are from different patients and, therefore, have similar but different sizes and shapes. But their topologies are the same. I have tried many ways to do mesh registration, such as ICP, non-rigid ICP, CPD, etc. None of the above works well for my case. I was wondering if there is anyone here who has a similar experience and found a good solution?  
Thanks a lot!

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 3, 2020, 12:24am UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/2 "2020-10-03T00:24:30Z")

</div>

Meshes of vascular trees are a very special, so general-purpose registration techniques are not well suited for them. You can find a nice overview paper of vascular image registration [here](https://www.sciencedirect.com/science/article/pii/S1361841516300342) and corresponding living review page [here](http://livingreview.in.tum.de/vascular_image_registration/). If you find a promising method and it is not open-source then you can use VTK/ITK to implement it.

---

<div class="post-metadata">

### Author: ![xiaozhi\_zhu](https://discourse.vtk.org/user_avatar/discourse.vtk.org/xiaozhi_zhu/32/2401_2.png) [@xiaozhi\_zhu](https://discourse.vtk.org/u/xiaozhi_zhu)
#### Post date: [October 4, 2020, 12:33am UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/3 "2020-10-04T00:33:28Z")

</div>

Hi Andras,  
Thanks for your reply. The meshes I am dealing with are not very complicated. It looks like the following.  
 ![image](https://discourse.vtk.org/uploads/default/original/2X/5/555a42263e9b72e564ac0d7c66acb947fdfac9ee.png)  
Do you think there is any well-established algorithm for these kinds of meshes?  
Thanks a lot!

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 4, 2020, 12:50am UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/4 "2020-10-04T00:50:24Z")

</div>

These meshes look quite hard to register. If you extract centerline and register those then it becomes much simpler. If you even identify branches and register one by one then it may become an easy registration problem. You can use the VTK-based [VMTK toolkit](http://www.vmtk.org/) to extract centerline and split to branches. You still need to implement a small logic to identify branches and register each corresponding branch.

---

<div class="post-metadata">

### Author: ![xiaozhi\_zhu](https://discourse.vtk.org/user_avatar/discourse.vtk.org/xiaozhi_zhu/32/2401_2.png) [@xiaozhi\_zhu](https://discourse.vtk.org/u/xiaozhi_zhu)
#### Post date: [October 5, 2020, 5:58pm UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/5 "2020-10-05T17:58:55Z")

</div>

Thanks a lot for your answer. I really appreciate it. I have one more question. Do you think it would be easier if we start the registration at the MRI image-level instead of the meshes level?

---

<div class="post-metadata">

### Author: ![lassoan](https://discourse.vtk.org/user_avatar/discourse.vtk.org/lassoan/32/50_2.png) [@lassoan](https://discourse.vtk.org/u/lassoan)
#### Post date: [October 6, 2020, 7:55pm UTC](https://discourse.vtk.org/t/is-there-any-tools-to-find-correspondence-between-two-meshes-in-vtk/4341/6 "2020-10-06T19:55:51Z")

</div>

> [@xiaozhi\_zhu](#):
>
> Do you think it would be easier if we start the registration at the MRI image-level instead of the meshes level?

If the images belong to the same patient then image-to-image registration may be easier, as there are a lot of additional information to guide the registration and the difference between the images should be small. Anatomy can hugely vary between different patients, so in that case aligning vascular centerline trees is probably a better approach.
