Technion - Israel Institute of Technology
Computer Science Department |
Center for Graphics and Geometric Computing |
Novel View Generation
[Introduction] [Solution] [Implementation] [User's Manual] [Results] [ References] [Authors]
This project focused on solving the problem of
synthesizing novel images, from arbitrary viewing positions, given two reference
images from the scene.
In order to generate the third image we use the camera's parameters (focal
length, center ext.), camera's position (translation and rotation components)
and corresponding points between the two source images.
[ top]
Our solution involves three steps.
First, we compute the fundamental matrix between the
two source images using an eight-points algorithm. This allows us to derive
the relative translation and rotation between the two images. Using the derived
translation and rotation plus what we already know (the relative translation and
rotation from the first source image to the third desired image), we compute
the fundamental matrix from the second source image to the third desired
image.
Second, we compute the fundamental matrix between the first source image to the
third desired image (in our case here, the relative translation and rotation
between these two images have already been given as inputs).
The last phase is to take the two fundamental matrices and the corresponding
points and compute the third desired image.
Note that all the computations are made at the third image's axes system. All
synthetic images must be in a perspective mode.
The solution's scheme:
After generating the points of the desired image, we triangulate them according to Delaunay triangulation and match the texture according to the corresponding points.
[ top]
1. Matlab code includes implementations of the
problem's solution (function main) as explained above.
2. The viewer program is used to generate the input to the Matlab code: loads
vrml files and generates images in different positions in perspective mode with
texture.
[ top]
Project implementation here.
1. Unzip code. zip file.
2. Run code/input/SimpleViewer.exe and load code/input/test.wrl example file.
4. Build three different images :
Note : Between each pair of image
the
translation must be in a non collinear direction.
The SimpleViewer creates an output.m file which contains the following data
for the Matlab program:
K -
Calibration matrix
PM - Perspective projection matrix
TMi - Transformation matrices
P<l,h,ld,hd>ki - points to different accuracies and densities. These
are the sets of 2D points calculated by SimpleViewer from the
Pi=K*PM*TMi*P , where P - is an original 3D object's points.
The desired image | The generated image. |
The desired image | The generated image. |
Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman, Cambridge University Press 2000 .
[ top]
Irina Rahmatulina : dveira@tx.technion.ac.il
Orit Cohen: oritc@cs.technion.ac.il
This work was done as a semester project in the Computer Graphics Course of the Faculty of Computer Science under the supervision of Prof. Craig (Chaim) Gotsman and Dr. Ilan Shimshoni
[ top]
October 2002