Registered Member
|
The search function didn't give me any results on orthogonalization methods within Eigen. Do they exist in Eigen, as I can't seem to be able to find them. I need orthogonalize a homogeneous matrix (4x4) that comes as an output from a function (the Iterative Closest Point algorithm in PCL to be exact), as when I use it as an input to another function it throws an exception that the matrix is nu orthogonolized and not normalized (The last one is not the problem though).
From wiki I've read about Gram-Schmidt process and the Householder transform. While I did find a Householder module in Eigen, I have no clue if this is indeed the one wikipedia is referring to, neither did the documentation give me a clear idea on how to actually use it. Anyhow who can help me out on this one? Thanks in advance, xilconic |
Registered Member
|
Applying the Gram-Schmidt process to the columns of a matrix is the same as applying the QR algorithm to the matrix. The matrix Q is the orthogonalized version of the matrix you start with. In Eigen, the classes xxxHouseholderQR compute the QR decomposition; you can get the matrix Q using the .matrixQ() member function.
I'm not sure whether this is what you need though. I'm not familiar with point clouds and only vaguely with homogeneous matrices. |
Registered Member
|
I'm also only vaguely familiar with homogeneous matrices, but it's the only thing I can think of to solve the error message: orthogonalize and then normalize the result. Then hope I won't be seeing the exception being thrown any more. But thanks jitseniesen, I'm going to try that then.
|
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]