I use two projection matrices P1 and P2 (for example I'm using dinosaur dataset) and I need to compute the fundamental matrix F. So I use two Matlab functions:
These functions should do the same thing, but I have a different F value! How it's possible? Which is the right functions?
If two points X1 and X2 are "the same" in two different images, X2^T*F*X1 = 0 ... So I found two corresponded points from two rotated images (5 degrees) by using SURF, but X2^T*F*X1 is never equal to zero with this two funtcions. Any ideas?
Instead if I use this function that computes F from matches points:
I have that X2^T*F*X1 = 0 .... Obviously F is different from the two F I had with the other two functions...
Well for one thing, it's overwhelmingly likely that the points aren't perfectly rotated version of each other. SURF uses a lot of approximations, bi-linear interpolation and a whole slew of things that break true rotational invariance. So there might not exist such a fundamental matrix (if there's no linear relationship between the two sets of points.) Yes, this is true even after you do point matching.
That said, your X2^T*F*X1
should probably be small if the matching is really good, but I'd be surprise if it's ever exactly zero for any real image.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With