Cylindrical projection from fisheye videoWritten by Paul BourkeSeptember 2025
This document describes a method for creating 360° video for a cylindrical display, in this case, an LED cylinder measuring 8 m in diameter by 4 m in height, with 12,816 pixels around the circumference and 2,048 pixels vertically. Often this is achieved using one of the modern multi-camera 360° video systems able to approach the required ~12K resolution (at the time of writing, examples include the InstaPro2, Titan, Obsidian Pro, or Meta-4). The video from these cameras is normally stitched into equirectangular projections, from which a cylindrical panorama is extracted. However, those systems consist of multiple cameras whose projection points do not coincide; because of a fundamental property of imaging, the seams from stitching between the camera images can never be perfect. A traditional 360o camera captures about 180o vertically, but a cylindrical display typically requires much less (53o in this case calculated as 2*atan(2000/4000). That means most of the vertical field of an equirectangular projection is discarded. ![]()
![]()
Another category of solutions are called catadioptric panoramic cameras, which use curved mirrors (cones, paraboloids, hyperboloids, etc) combined with a conventional lens (usually pointed upward) to create a wide-angle or full-circular panorama in a single shot, without stitching. Given that only 53o are needed, one can simply use a fisheye lens pointing straight up, and extract a cylindrical panorama from the outer rim of the resulting fisheye video. For the installation here we need a vertical field extending from −26.5o to +26.5o, which can be covered by a 233o fisheye. At the time of writing, Entaniya produces a 250o fisheye lens, which more than satisfies this requirement. Below is an example image taken with that lens. ![]()
The Entaniya fisheye is quite sharp, and its field angle to sensor position curve is reasonably linear. If necessary, the non-linearity can be corrected.
![]()
Using only about 233o of the full 250o gives some margin, especially since full-frame sensors may slightly crop the fisheye circle in certain modes (for example, if not using “open gate”). It also allows avoiding the worst of the non-linearity, any brightness fall-off (vignetting), and softness at the extreme edges. ![]()
The cross section of the field of view below illustrates the wedge (in red) that will be extracted for presentation on the cylindrical display. The green ring corresponds to the midheight of the cylinder, the equator. ![]()
The rings of the fisheye used when extracting the cylindrical panorama is shown below, between the two blue circles. This is using a camera with approximately a 5K vertical resolution. ![]()
The resolution of the cylindrical panorama for the 5K vertical sensor above is illustrated below. The center line (green) is essentially a 1:1 mapping from the available pixels to the resolution of the LED cylinder. Noting that this higher than expected resolution is due to using pixels around the circumference of the circle, a factor of pi of the linear dimension of the circle diameter. However, if higher fidelity is desired, especially for video, one normally wants to oversample. Cameras capable of ~12K resolution horizontally (running in open-gate mode typically capturing ~8K vertically) are suitable. Oversampling reduces aliasing, lowers noise, and can slightly improve dynamic range. ![]()
The extraction of the cylindrical panorama from the fisheye is performed using the authors fish2cyl software. Since extreme wide angle fisheye lenses are susceptible to chromatic aberations towards the rim of the fisheye circle, care should be taken to correct for that before any cylinder extraction. ![]()
Related approaches include:
|