Epipolar geometry computations ...

Started by
4 comments, last by Sbronz 18 years, 10 months ago
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 :)
Advertisement
i just loooked again over many and many pdf dealing with that ... i cant find what i missing :/
any idea?
up
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
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 !
(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/

This topic is closed to new replies.

Advertisement