+4 votes
by
There is a photo from the camera (calibrated by means of OpenCV) of the object.
I can only find 3 points on it (no options). Let's call this the "original" position.
I know what the angle should be in reality, if you draw segments between them, as well as the distances of these segments.

Then the object is turned and moved. I need to find how much moved and how much rotated. If it all happens in one plane, then estimateAffine2D is fine.

But if, for example, the angle of the object slightly upwards, the calculations are no longer accurate.

Ideally, perspectiveTransform would help, to restore perspective, but it needs 4 points, and I only have 3.

Can you please tell me if OpenCV has any built-in tools or maybe an algorithm?

Right now I'm looking at solveP3P, but I can't figure out what to do with the transfer and rotation vectors.

1 Answer

0 votes
by
The perspective transformation is a 4x4 matrix. Consequently, for an equation with such a matrix to be uniquely solved, you must specify 4 points.

You will hardly be able to "cheat" the math, because you have already used your knowledge of the angles and distances between the points you have (because they are, roughly speaking, stored in the coordinates of those three points).
...