A java applet illustrates how these two algorithms work. The important part of the interface are the canvases Projection and Observation. The first one is the actual view of the camera for which we want to detect degeneracies and compute valid views. The other one allows the user to see what is happening from another point of view. You can see the projection plane, the camera and the object at the same time. When an algorithm is applied, graphical information is also added to this view.


The two 3-D canvas have very different control functionality. Let's summarize how they both work:

Projection: With the mouse, you can rotate the object around the X-axis and Y-axis of the world. Using the third button of the mouse, you can also rotate it around the Z-axis. By pressing any key, you can change the focal length of the camera. You will notice that the shape of the object changes. This is completely normal. As the focal length increases, the perspective projection approximates more and more an orthogonal projection. increasing the size of the focal length also creates a zooming effect [2]. You will notice that moving the object or changing the focal length of the camera has an immediate effect on the Observation.

Observation: In this view, you control a virtual camera located around the object and the projection plane. With the mouse, you can rotate this camera around the scene or tilt it using button3. By pressing any key, you can translate the camera in x and y.

With the buttons on top of the window, you can verify if there really is a degeneracy. If so, you can use the other button to compute a valid projection. When it has completed, you can check again that the projection is valid for this particular degeneracy.

Greg ALOUPIS 2003-12-22