Stitching fisheye images
Contents
Introduction
Fisheye images are unusual in that they produce a very wide-angled but severely distorted image. So is it possible to stitch images of this kind with Autopano?
Well yes, and it is actually just as easy to work with them as with any other kind of image!
A fisheye shot enables wide surface coverage with a minimum number of images.
This makes it very useful for the creation of complete panoramic views for effective virtual tours.
Concept
As mentioned above, a virtual tour is based on a panorama, ideally a full spherical panorama.
We will see that to create such a panorama is actually very easy (and can even be done very quickly) using the right equipment:
- A camera
- A fisheye lens
- A tripod
- A panoramic head
It is, of course, possible to create a full spherical panorama (360°x180°) with other lens types.
However, the number of shots required then varies as follows (without counting the shooting time and the risk of stitching process error):
- With a 35mm lens, 52 shots (4 lines of about 12/15 shots) are needed.
- With a 28mm lens, 32 shots are needed.
- With a fisheye 10.5mm lens, only 8 photos are needed.
Finally, essential for shooting full spherical panorama is the setting of the entrance pupil of the camera/lens pair mounted on a panoramic head.
Actually, this setting prevents parallax, a very annoying problem for image stitching because it is impossible to remove. Here is a link explaining one of the techniques you can use to set the ideal rotation point: Setting the nodal point
With the entrance pupil of the panoramic head is set (accurately), the following lesson will show how to use Autopano to create a full spherical panorama with fisheye images.
The Different Types of Fisheye Image
Example 1: Stitching Full-frame, Spherical Fisheye Images
The shooting
- Equipment used: Nikon D90 + Nikkor 10.5mm fisheye lens
- Number of images: 6 horizontal images + 1 (Zenith) + 1 (Nadir), totaling 8 images
Direct Stitching using Autopano
If we import the images into Autopano, and the EXIF data are correctly displayed, it is clear that 8 images have been successfully imported, and that the focal length is 15mm (equivalent to 35mm) in fisheye mode.
If we then launch direct stitching, the following result is obtained after detection:
The result is almost perfect (the RMS value being 4.83). All that remains to do is to delete the few bad control points to remove the induced tension between the images.
Rendering
Here is the rendering generated in 2048x1024 pixels:
Example 2: Stitching Circular Fisheye Images
The shooting
- Equipment used: Nikon D90 + Sigma 8mm fisheye lens
- Number of images : 6 horizontal images + 1 (Zenith) + 1 (Nadir), totaling 8 images
Direct Stitching using Autopano
As in Example 1, if we import the images, we can see that the EXIF data are correctly displayed, showing 8 images with a focal length of 12mm (equivalent to 35mm) in fisheye mode.
The following result is obtained after detection:
The result is similar to that obtained in Example 1, if we apply the same process of modification (clearing the control points) and launch the rendering action.
Rendering
Here is the rendering generated (2048x1024 pixels):
Example 3: Fisheye Image Stitching without EXIF Data
The shooting
- Equipment used: Canon 20D + Peleng 8mm fisheye lens (not electronically connected to the camera body)
- Number of images: 6 images + 1 (Zenith) + 1 (Nadir), totaling 8 images
Direct Stitching using Autopano
After importing the images into Autopano, we see that no data is available for the pictures set.
Nonetheless, we will launch the detection process to view the result:
The result is not good. Since the EXIF data is not found by Autopano, the parameters must be set manually to achieve correct stitching.
Settings
If we open the Image Properties window, we can correctly set the image parameters.
Because the EXIF data was not found, Autopano has applied the default parameters for a standard lens type with a focal length of 50mm:
Firstly, we must define the lens type, essential to Autopano for correcting the distortion and hence to obtain correct stitching.
To do so, we simply have to open the dropdown menu of the lens type option and select fisheye instead of standard.
The choice of the fisheye lens type automatically triggers display of a new Circular crop tab in the window, which we will examine later.
Note: Definition of the focal length is not really important, because Autopano does not base the fisheye image stitching on this definition.
In the current case, we know the focal length (Peleng 8mm fisheye lens), so we can, nonetheless, enter this value manually in to the Focal (35mm eq.) field.
Here is the Image Properties window with the Images tab after modification:
If we now open the new Circular crop tab mentioned above, this tab enables you to set the image area to be used by Autopano.
This is very useful in this case (where the EXIF data was not found), because this area can otherwise be badly defined. You can simply use the mouse to enlarge or shrink the usage area.
Note: Hold the Ctrl (Win) / Cmd (Mac) key to enlarge or shrink the area from its centre.
Bad definition of the fisheye area: You can see the rounded borders included inside the used area. This will alter the resulting stitched and rendered image. | Good definition of the fisheye area |
Once you have finished defining the settings, confirm (OK) to save the changes.
Stitching after Parameter Definition
Now, this is the generated result after image parameter definition:
The group data clearly indicates that the images are 8mm, fisheye type.
The result is good, even though it was generated in an irregular way (FOV = 360°x180°, RMS = 4.39). For example, to apply a 180° rotation to the image, you just need to open the Panorama Editor:
1. Activate the numerical transformation tool 2. Apply a 180° rotation |
Validate, the panorama is correctly oriented |
Note:
As in the above example, the Panorama Detection can produce unexpected results (wrong orientation, incorrect viewpoint, etc...).
For example, using portrait and landscape images in the same stitching can produce a Nadir viewpoint, which triggers a poorly defined image, although this can be fixed.
If a visually incorrect panorama is generated after detection, you simply need to open the Panorama Editor and apply the appropriate rotation to retrieve a good visual result.
Rendering
Here is the rendering generated (2048x1024 pixels):
BACK TO: Documentation / Autopano Documentation