Tilting fisheye images for
variable dome orientations

Paul Bourke
February 2005

See other applications here

Not all dome environments have the hemisphere surface orientated the same, for example a VisionStation and a planetarium typically have their hemispheres at 90 degrees to each other. Many planetariums have seating arranged so that the center of attention of the audience is 30 or 40 degrees above the horizon, still other planetarium domes are tilted placing the center of attention higher above the horizon.


Single frame from video camera.

When creating synthetic fisheyes using computer graphics the different dome orientations can be catered for by simply rendering the models/animation again. However for filmed fisheye material it isn't always possible to repeat the filming, for example it may be of a remote location or a recording of a once only event. This document describes how one might create fisheye images at different angles to the angle the original fisheye was captured at.


Corrected fisheye, 0 degree tilt angle.


Tilted 30 degrees.

The example shown here converts a movie that was captured with the fisheye pointed "forwards", suitable for an environment such as the VisionStation. The new intended viewing dome was a small inflatable where the center of attention is perhaps half way between the horizon and the pole. The image above shows the new fisheye as if it was tilted 30 degrees, and below a 60 degree tilt.


Tilted 60 degrees.

Note that these are obviously no longer full fisheye images because there is information that simply isn't captured in the new fisheye orientation. This is somewhat helped if the projection system employs the common truncated fisheye image/lens arrangement which crops parts of the fisheye anyway, in this case it is just cropping unavailable portions.


Tilted by 60 degrees and cropped for truncated fisheye projection.

Application

An application called "fishtilt" implements the fisheye rotation described here. It is designed to work on a single image but obviously can be applied to each frame of an animation. Antialiasing is implemented as a straightforward supersampling of 2x2, 3x3, etc. The performance is dictated by the dimensions of the output image and the level of antialiasing, it is independent of the size of the input image.

Usage: fishtilt [options] fisheyeimage
Options
   -w n     output image width, default = 600
  -af n     field of view of fisheye (degrees), default = 180
  -cf x y   center of the fisheye image, default is image center
   -r n n   horizontal and vertical radius of fisheye
  -tx n     tilt by n degrees about right vector, default = 0
  -tz n     tilt by n degrees about up vector, default = 0
   -a n     antialiasing level, default = 1 (no antialising)
   -b n     reduce field of view towards back - eperimental, units: degrees
  -bb       clip top of fisheye for truncated fisheye
Geometric conventions




Rotating a fisheye image left/right

Written by Paul Bourke
December 2008

Similarly a fisheye can be "panned" (rotated) left and right.


0 degrees, original image

10 degrees

20 degrees

30 degrees

40 degrees

50 degrees

60 degrees

70 degrees

80 degrees

90 degrees

100 degrees

110 degrees

120 degrees

130 degrees
Usage: fishrotate [options] fisheyeimage
Options
   -w n     output image width, default = 600
  -cf x y   center of the fisheye image, default is image center
   -r n n   horizontal and vertical radius of fisheye
   -t n     rotate by n degrees about right vector, default = 0
   -a n     antialiasing level, default = 1 (no antialising)
  -bb       clip top of fisheye for truncated fisheye

A further example with the Red Scarlet camera and Sigam 4.5mm fisheye lens. The tilting is designed for the iDome in which case the loss of image at the bottom is not a problem although there are also thin wedges introduced on the sides.