Is it possible to register two meshes then subtract away the overlapping region?

Hi all,

TLDR: I want to register two meshes and find the corresponding points/indices so that I can compare a derived value within and outside my region of interest.

I have mesh A generated by one modality, I then performed calculations at each vertex. The data looks like this:

calculated_value   X             Y              Z
0.596             -65.355        15.519         190.760
0.601             -64.811        17.557         190.816
0.602             -66.040        17.290         191.835
0.598             -64.785        16.570         190.624
0.598             -64.020        16.604         190.632
.....             .....          .....          .....

Mesh B was then generated from an MRI of the same organ using a different modality, and only corresponds to a region of interest relative to Mesh A. Looks something like this:

Mesh C was generated using the same methodology/modality as B and putatively corresponds to the full surface volume of mesh A.

I want to proceed to register the subset mesh with Mesh A for which I have calculations, with the intent of finding the coordinates (or index position) of the vertices so that I can subset out the calculated_values both inside and outside the region of interest.

Ultimately I need to derive a data table that looks like this:

region     calculated_value   X             Y              Z
mesh_a     0.596             -65.355        15.519         190.760
mesh_a     0.601             -64.811        17.557         190.816
mesh_b     0.602             -66.040        17.290         191.835
mesh_b     0.598             -64.785        16.570         190.624
mesh_b     0.598             -64.020        16.604         190.632
.....      .....             .....          ......         .....

Is this possible?

I’ve used the IGT Model Registration module to perform a rigid registration of the region of interest (blue) onto the mesh (yellow) and am now wondering if it’s possible to get all the points corresponding to the surface area directly underneath the blue, on the yellow.

I’m thinking perhaps I can export both point lists and then perform a K nearest neighbors classification algorithm to fill in which point number on the yellow mesh each blue mesh vertex point corresponds to best. I’ve never tried anything like this before though.

Screen Shot 2022-07-29 at 11.22.04 PM

I would try to customize this filter inputs:
https://vtk.org/doc/nightly/html/classvtkWarpVector.html

So you get the desired result

Hope it helps