Jump to content
  • Advertisement
Sign in to follow this  
Ey-Lord

Epipolar geometry computations ...

This topic is 4880 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hello hello :) I got a litle math pb . Im working on some image algorithm . I got 2 view of the same scene and i wanna be able to render it in 3D . Im learing the basics atm . I use the epipolar geometire, i have computed the Fundamental matrix . I just wana be able to draw epipolar lines now . First, i wanna know how to i compute epipoles . I read that : E(t) * F = 0 F * E' = 0 That's cool , but when i solve those system i always get E' = 0 0 0 I suposed E and E' are ( 3,1) matrix ) and 0 is the null (3,1) matrix ... i may be wrong somewhere ... can you help me ? thx :)

Share this post


Link to post
Share on other sites
Advertisement
i just loooked again over many and many pdf dealing with that ... i cant find what i missing :/
any idea?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Suppose that e2'Fe1=0, where e2 is the epipole in the second image and e1 in first one (a' is vector a transposed).
If e2 and e1 are the epipoles it follows that e2'*F=0 and F*e1=0 so e1 and e2 are, respectively, the right and the left null space of F. You can find them with the SVD decomposition of matrix F -> F=UDV' then e1 is the last column of V (the righ null space). Don't forget that e1 and e2 are expressed in homogeneous coordinates.
Anyway...finding F is only a step of a 3d reconstruction, a lot of problem still remain, such camera calibration and so on...

Search for Zisserman on Google...he's the guru of 3d reconstruction

Share this post


Link to post
Share on other sites
thx , ill check that :
i've been given another slution ; just fix E = ( x , y , 1 ) ; then i can solve my system .

Anyway , ive got another pb : to trace an epipolar line i need the epipole ( lets assume i got it ... i think the method is use is working ... ) ana nother point .

This pt is given by

l' = F*x

x is the pt we are checking ( x,y,1)
F the matrix fundamental
l' is suposed to be the equation of the epipolar line on image 2 .
However , i got everytime some really LOW value for l' .

I know taht in homogenous coordinate x = kx . But im interested in carthésian ( to plot it on the screen ) and this isnt helping me ! Im always getting my pt near ( 0,0) in carthésian ... i dunno what to do .

im gonna check this SVD thing ( i hope it isnt too hard to code :D ) .
thx !

Share this post


Link to post
Share on other sites
(it's still me...I posted as anonymous cause I wasn't registered yet)
There are a lot of ways you can draw a line expressed in homogeneous coordinates.
For example you can intersect that line with the borders of your window and find two points (if they exist). Suppose that l2=F*x1=[a b c]' (with x1!=e1)then the equation of line l2 is a*x + b*y + c = 0 -> now you have to find two points that lay on that line (try with the border of your window).
Be aware that assuming your epipole a 'finite' point (like [ex ey 1]) is dangerous, because it could be a point that stay at infinity (like [ex' ey' 0]), and It's not so uncommon. For example you can obtain that situation assuming that your two images are taken by a camera that translate along x or y axis, in that case the images of the centers of those two cameras (the epipoles) are infinite points. A good way to find the epipoles given the fundamental matrix is to use the Singular Value Decomposition (SVD) as I told you before, in this way you obtain a normalized vector and you don't have to care about infinity because it's expressed in homogeneous coordinates.

If you use Matlab look at this:
http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!