Difference between revisions of "Fisheye Projection"

From PanoTools.org Wiki
Jump to navigation Jump to search
m (possibly misleading layout removed)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Image:big_ben_circ_fisheye.jpg|right|Circular Fisheye projection, with permission from Ben Kreunen]]
+
{{Glossary|A projection where the distance from the centre of the image to a point is proportional to the equivalent spatial angle.}}
[[Image:big_ben_ff_fisheye.jpg|right|Fullframe Fisheye projection, with permission from Ben Kreunen]]
+
[[Image:big_ben_circ_fisheye.jpg|frame|right|Circular Fisheye projection, with permission from Ben Kreunen]]
 +
[[Image:big_ben_ff_fisheye.jpg|frame|right|Fullframe Fisheye projection, with permission from Ben Kreunen]]
  
 
This is a class of [[Projections|projections]] for mapping a portion of the surface of a sphere to a flat image, typically a camera's film or detector plane.  In a fisheye projection the distance from the centre of the image to a point is close to proportional to the true angle of separation.
 
This is a class of [[Projections|projections]] for mapping a portion of the surface of a sphere to a flat image, typically a camera's film or detector plane.  In a fisheye projection the distance from the centre of the image to a point is close to proportional to the true angle of separation.
  
Commonly there are two types of fisheye distinguished: circular [[fisheyes]] and fullframe [[fisheyes]]. However, both follow the same projection geometrics. The only difference is one of [[field of view]]: for a circular fisheye the circular image fits (more or less) completely in the frame, leaving blank areas in the corner. For the full frame variety, the image is over-filled by the circular fisheye image, leaving no blank space on the film or detector.  A circular fisheye can be made full frame if you use it with a smaller sensor/film size (and vice versa), or by zooming a fisheye adaptor on a zoom lens.
+
Commonly there are two types of fisheye distinguished: circular [[fisheyes]] and fullframe [[fisheyes]]. However, both follow the same projection geometrics. The only difference is one of [[Field of View]]: for a circular fisheye the circular image fits (more or less) completely in the frame, leaving blank areas in the corner. For the full frame variety, the image is over-filled by the circular fisheye image, leaving no blank space on the film or detector.  A circular fisheye can be made full frame if you use it with a smaller sensor/film size (and vice versa), or by zooming a fisheye adaptor on a zoom lens.
  
There is no single fisheye projection, but instead there are a class of projection transformation all referred to as ''fisheye'' by various lens manufacturers, with names like ''equisolid angle projection'', or ''equidistance fisheye''.  Less common are traditional spherical projections which map to circular images, such as the [http://mathworld.wolfram.com/OrthographicProjection.html orthographic] (lenses commonly designated ''OP'') or [http://mathworld.wolfram.com/StereographicProjection.html stereographic] projections.  Luckily, most of these related projections can be dealt with in a simple way, as explained in this posting by [[Helmut Dersch]] (attention: '''theta = Field of View / 2'''):
+
There is no single fisheye projection, but instead there are a class of projection transformation all referred to as ''fisheye'' by various lens manufacturers, with names like ''equisolid angle projection'', or ''equidistance fisheye''.  Less common are traditional spherical projections which map to circular images, such as the [http://mathworld.wolfram.com/OrthographicProjection.html orthographic] (lenses commonly designated ''OP'') or [[Stereographic Projection|stereographic]] projections.  Luckily, [[Panorama tools]] and [[Hugin]] can deal with most of these mentioned projections.
  
<pre>
+
'''<math>\theta\,</math>''' is the angle in rad between a point in the real world and the optical axis, which goes from the center of the image through the center of the lens, <math>f</math> is the focal length of the lens and <math>R</math> is radial position of a point on the image on the film or sensor.
The focal length f of common fisheye lenses corresponds
 
quite simple to the angle of view theta and the
 
radial position R of a point on the slide:
 
  
R = 2 * f * sin( theta/2 )
+
{| class="wikitable"
 +
|-
 +
! projection
 +
! math
 +
! real lenses, matching this projection
 +
|-
 +
| equidistant fisheye
 +
| <math>R=f\cdot\theta</math>
 +
| e.g. Peleng 8mm f/3.5 Fisheye <br>This is the ideal fisheye projection panotools uses internally
 +
|-
 +
| stereographic
 +
| <math> R=2f\cdot \tan\left(\frac{\theta}{2}\right)</math>
 +
| e.g. Samyang 8 mm f/3.5
 +
|-
 +
| orthographic
 +
| <math> R=f\cdot \sin\left(\theta\right)</math>
 +
| e.g. Yasuhara - MADOKA 180 circle fisheye lens
 +
|-
 +
| equisolid
 +
(equal-area fisheye)
 +
| <math> R=2f\cdot \sin\left(\frac{\theta}{2}\right)</math>
 +
| e. g. Sigma 8mm f/4.0 AF EX, (also convex mirror)  
 +
|-
 +
| Thoby fisheye
 +
| <math> R=k_1\cdot f \cdot \sin\left(k_2\cdot\theta\right)</math>
 +
with <math>k_1=1.47</math> and <math>k_2=0.713</math>
 +
| e. g. AF DX Fisheye-Nikkor 10.5mm f/2.8G ED
 +
(empirical found math for this lens)
 +
|-
 +
| PTGui 11 fisheye
 +
| <math> R=\begin{cases}
 +
        {f\over k} \cdot \tan\left(k\cdot\theta\right) &\text{for}\ 0 < k \le 1 \\
 +
        f\cdot \theta &\text{for}\ k = 0 \\
 +
        {f\over k} \cdot \sin\left(k\cdot\theta\right) &\text{for}\ \text{-}1 \le k < 0
 +
        \end{cases}
 +
  </math>
 +
| The [http://www.ptgui.com/support.html#3_28 fisheye factor] <math>k</math> can model any possible fisheye. Different values correspond to the different fisheye mappings:<br>
 +
equidistant: <math>k = 0</math><br>
 +
stereographic: <math>k = 0.5</math><br>
 +
orthographic: <math>k = -1.0</math><br>
 +
equisolid: <math>k = -0.5</math><br>
 +
rectilinear (normal lens): <math>k = 1.0</math>
 +
|}
  
So for 90 degrees, which would be the maximum
+
So for example 90 degrees, which would be the maximum
theta of a 180 degree lens, f=8mm, you get
+
theta of a lens with 180 degree [[Field of View]], f=8mm, equisolid mapping, you get
R = 11.3mm, which is the radius of
+
R = 11.3mm, which is the radius of the image circle.
the image circle.
 
  
This projection model applies to the Nikon 8mm
+
Btw, a rectilinear lens has a mapping <math>R=f \cdot tan(\theta)</math>
and the Sigma 8mm (which actually has f=7.8mm).
 
This is also what you get when you look into
 
a convex mirror.
 
  
Some older Nikon lenses (e.g. the 7.5mm) try to
+
More information on [[fisheyes]] and their distortions from [http://www.bobatkins.com/photography/technical/field_of_view.html Bob Atkins Photography]
approach a linear mapping
 
  
R = f * theta      (theta in rad).
+
Panotools fisheye mapping mentioned by [[Helmut Dersch]] in http://www.panotools.org/mailarchive/msg/6864#msg6864
  
and succeed more or less.
 
For most practical applictions, you won't see a big
 
difference between the two.
 
 
Btw, a rectilinear lens has a mapping
 
 
R = f * tan( theta )
 
</pre>
 
 
We can assume that most newer fisheyes follow the first mapping scheme.
 
 
Complete text of the mail can be found at W.J. Markerink's [http://www.a1.nl/phomepag/markerink/fishyfaq.htm page about fisheye analysis]
 
 
More information on [[fisheyes]] and their distortions in this [http://www.coastalopt.com/pdfs/FisheyeComparison_SPIE.pdf PDF from coastal optics]
 
 
[[Category:Glossary]]
 
[[Category:Glossary]]
 +
[[Category:Projections]]

Latest revision as of 09:44, 21 August 2019


Circular Fisheye projection, with permission from Ben Kreunen
Fullframe Fisheye projection, with permission from Ben Kreunen

This is a class of projections for mapping a portion of the surface of a sphere to a flat image, typically a camera's film or detector plane. In a fisheye projection the distance from the centre of the image to a point is close to proportional to the true angle of separation.

Commonly there are two types of fisheye distinguished: circular fisheyes and fullframe fisheyes. However, both follow the same projection geometrics. The only difference is one of Field of View: for a circular fisheye the circular image fits (more or less) completely in the frame, leaving blank areas in the corner. For the full frame variety, the image is over-filled by the circular fisheye image, leaving no blank space on the film or detector. A circular fisheye can be made full frame if you use it with a smaller sensor/film size (and vice versa), or by zooming a fisheye adaptor on a zoom lens.

There is no single fisheye projection, but instead there are a class of projection transformation all referred to as fisheye by various lens manufacturers, with names like equisolid angle projection, or equidistance fisheye. Less common are traditional spherical projections which map to circular images, such as the orthographic (lenses commonly designated OP) or stereographic projections. Luckily, Panorama tools and Hugin can deal with most of these mentioned projections.

is the angle in rad between a point in the real world and the optical axis, which goes from the center of the image through the center of the lens, is the focal length of the lens and is radial position of a point on the image on the film or sensor.

projection math real lenses, matching this projection
equidistant fisheye e.g. Peleng 8mm f/3.5 Fisheye
This is the ideal fisheye projection panotools uses internally
stereographic e.g. Samyang 8 mm f/3.5
orthographic e.g. Yasuhara - MADOKA 180 circle fisheye lens
equisolid

(equal-area fisheye)

e. g. Sigma 8mm f/4.0 AF EX, (also convex mirror)
Thoby fisheye

with and

e. g. AF DX Fisheye-Nikkor 10.5mm f/2.8G ED

(empirical found math for this lens)

PTGui 11 fisheye The fisheye factor can model any possible fisheye. Different values correspond to the different fisheye mappings:

equidistant:
stereographic:
orthographic:
equisolid:
rectilinear (normal lens):

So for example 90 degrees, which would be the maximum theta of a lens with 180 degree Field of View, f=8mm, equisolid mapping, you get R = 11.3mm, which is the radius of the image circle.

Btw, a rectilinear lens has a mapping

More information on fisheyes and their distortions from Bob Atkins Photography

Panotools fisheye mapping mentioned by Helmut Dersch in http://www.panotools.org/mailarchive/msg/6864#msg6864