weighted ICP

Hello, everyone. I use the VTK ICP module to do point-to-surface registration. I want to give some points less weight in ICP as I need them to affect but less than other points. I searched a lot through the ICP module, and I couldn’t find how to do this. I use the python lib of VTK and want to know how I can do this weighting.

ICP does distance comparison between points. You could introduce a scale factor (or scale array) for the distances that acts as an inverse weight i.e. a scale of 1 would maintain true distance but a scale < 1 would increase the distance computed for that point. Of course, this is based on what I understand from your description and would require you to modify vtk code.

It sounds logical but the problem is I don’t want to go through changing the C++ code of
VTK. I want to see if I can handle it with Python or not.

I don’t think you can handle it directly in Python without modifying the underlying VTK logic. Depending on your requirement, Kitware can help with consulting service.