I am trying to look for a precise definition of what rigid and non-rigid transformation is, and to which categories does 'scaling' belong. This is connected to a Point-Set registration problem that I am trying to solve using Coherent Point Drift algorithm CPD.

Wikipedia and other sources claim that a rigid transformation preserves shape and size i.e distance between two points remains the same. This means that 'scaling' would not be considered to be in this category as the size increases.

This means that it has to be a non-rigid transformation. If this is true, than performing a non-rigid transformation should result in no translation, yet the translation in CPD is performed as seen in Figure 4 in the paper.

Moreover, there are affine transformations, and from my understanding they capture both forms of transformation. Well, if this is the case why do we bother with non-rigid transformations? Moreover, a result of applying non-rigid ( assuming that translation is performed as in paper) and affine transformation should result in the same thing ( but authors own implementation produces different results), which makes me think that they are two different things.

Am I missing something obvious or is that a mistake?


A Rigid transformation is defined as rotation and translation. Think of rigid transformations as things you can do to 'solid' objects - like a glass cup. I can move the cup anywhere I wish, and spin it around, but I can't change it's scale.

As for affine transformations these include translations, rotations, scaling, sheer.

Both Affine and Rigid transformations are parametric, since we can create a single matrix which when applied on any point. See this page 2D Affine Transformations. As you can see, the product of all these matrices form the Affine transformation matrix.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.