This forum is disabled, please visit https://forum.opencv.org

1 | initial version |

No, there is no way to use `solvePnP()`

for your specific use case.

You can do it yourself. I see two possibilities.

In both cases you would have to reimplement the non-linear minimization process for the pose estimation refinement. You can use as a reference the `solvePnPRefineLM()`

and modify it for your needs.

The first solution is to truncate the Jacobian matrix that is of size `2N x 6`

(with `N`

the number of points and `6`

the number of parameters: angle-axis + translation) to `2N x 3`

. Then you update only the rotation part.

The other solution I see is to keep the Jacobian matrix of size `2N x 6`

and just update the rotation part. But I am not sure if is valid or not.

See: Gauss-Newton / Levenberg-Marquardt Optimization by Ethan Eade. The application is for pose estimation.

2 | No.2 Revision |

No, there is no way to use `solvePnP()`

for your specific use case.

You can do it yourself. I see two possibilities.

In both cases you would have to reimplement the non-linear minimization process for the pose estimation refinement. You can use as a reference the `solvePnPRefineLM()`

and modify it for your needs.

The first solution is to truncate the Jacobian matrix that is of size `2N x 6`

(with `N`

the number of points and `6`

the number of parameters: angle-axis + translation) to `2N x 3`

. Then you update only the rotation part.

The other solution I see is to keep the Jacobian matrix of size `2N x 6`

and just update the rotation part. But I am not sure if is valid or not.

Or maybe use something like a selection matrix to discard the translation part?

See: Gauss-Newton / Levenberg-Marquardt Optimization by Ethan Eade. The application is for pose estimation.

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.