decomposeEssentialMat() always return normalized T (Bug #3423)
Description
Hi,
It seems decomposeEssentialMat() always returns normalized T (|T|=1.0).
T should be a transition vector, so it should have some proper length, right?
I have checked it only at python.
(It happens at recoverPose() too.)
R0,R1,T = cv2.decomposeEssentialMat(E)
R0,R1 seems to be fine.
Attached is my quick code to check that. Ple
---FYI---
I got the code on 2013/11/15 by
git clone git://github.com/Itseez/opencv.git
History
Updated by Nikita Manovich about 11 years ago
Hi,
Thank you for the bug report. Could you please help us to investigate and fix the problem? If you can prepare a pull request to fix the problem it will help us a lot. Please look at the article: http://www.code.opencv.org/projects/opencv/wiki/How_to_contribute
- Assignee set to Yoshinari Kameda
- Status changed from New to Open
Updated by Bo Li about 11 years ago
Hi this is not a problem. By decomposing essential matrix, you are not able to recover the full translation but only the direction. I've sent a pr to update the doc. For the code attached: your generated E is scaled by the length of t. However, in practice when you estimate an essential or fundamental matrix, you don't have scale.
- Status changed from Open to Cancelled