Wide Angle vs Fisheye Lenses: Distortion, Projection Models, and Machine Vision Selection
The difference is the projection model, not distortion severity. This guide explains how fisheye and wide-angle lenses map the 3D world onto your image sensor, and how to pick the right projection for machine vision, robotics, and computer vision.
A fisheye lens has a field of view of 180° or more; a wide-angle lens covers a large field but typically less than 180° (Smith, Modern Optical Engineering, 4th ed.).
The two differ by projection model, not by how much distortion slipped through. A rectilinear wide-angle maps rays as r = f·tan(θ) and preserves straight lines. A fisheye uses an equidistant, equisolid, or stereographic mapping instead, keeping coverage past 180° finite on the sensor. A fisheye can also act as a wide-angle lens when a smaller sensor crops its image circle.
Choose rectilinear when your algorithm reads geometry straight from pixel positions, as in measurement, inspection, or lane detection. Choose fisheye when one camera must cover more than 180° or the pipeline works from ray directions rather than pixel coordinates, as in SLAM and surround view.
What is the difference between a fisheye lens and a wide angle lens?
A fisheye lens is a lens with a field of view of 180° or more, the definition given in Warren Smith's Modern Optical Engineering, 4th edition. A wide angle lens provides a large field of view but typically less than 180°. A fisheye can act as a wide-angle lens when a smaller sensor crops its image circle, but a wide-angle lens is not necessarily a fisheye. Commonlands stocks both as M12 lenses for machine vision and robotics.
The deeper distinction is the projection. A rectilinear wide-angle lens is designed so straight lines in the scene stay straight in the image. A fisheye abandons that mapping on purpose and trades straight-line rendering for angular coverage that a rectilinear design cannot reach. The curved lines in a fisheye image are the projection working as designed, not a defect that escaped quality control.
How does barrel distortion affect field of view?
Barrel distortion increases field of view for a given focal length: a lens with more barrel (negative) distortion covers a wider field than a lens of the same effective focal length, and the smaller the field of view, the less apparent the distortion. Pincushion (positive) distortion works the other way, consuming the image circle faster.
For conventional lenses this is a third-order (Seidel) aberration. For fisheyes the departure from rectilinear is the intended projection, not an aberration to minimize. Either way, distortion is the change in local magnification with image height, and it grows with field angle.
θ is the ray half-angle from the optical axis, in radians inside every formula, while each quoted field of view is the full angle, 2θ. Every image circle is a diameter, so the image radius r is half of it.
The Commonlands chart shows how each projection maps field angle to radial distance. Rectilinear spends more image height per degree as the angle grows (dr/dθ = f·sec²(θ)), stretching edge content and capping the total field a finite sensor can hold. Equidistant keeps angular sampling uniform across the field, which is why tasks that need consistent feature tracking from center to edge favor it.
What are the four main lens projection models?
A fourth, less common mapping, orthographic (r = f·sin(θ)), compresses the outer field so hard near 90° that it rarely appears in machine vision. Commonlands specifies which projection each fisheye M12 lens uses, so you can match the calibration model before buying.
| Projection | Formula | Inverse (solve for θ) | Key property | Best application |
|---|---|---|---|---|
| Rectilinear | r = f·tan(θ) | θ = atan(r/f) | Preserves straight lines | Architecture, measurement |
| Equidistant | r = f·θ | θ = r/f | Linear angle-to-radius | SLAM, visual odometry |
| Equisolid | r = 2f·sin(θ/2) | θ = 2·asin(r/2f) | Preserves area ratios | Sky coverage, hemispheric |
| Stereographic | r = 2f·tan(θ/2) | θ = 2·atan(r/2f) | Preserves local shapes | Object recognition |
Confirm which projection the manufacturer specifies before choosing a calibration model. The mismatch that leaves residual geometric error no coefficient tuning can remove is applying a pinhole (Brown-Conrady) model to a fisheye. Among fisheye projections, the Kannala-Brandt polynomial represents equidistant, equisolid, and stereographic mappings. With good calibration data, it typically reaches sub-pixel residuals.
When does a fisheye act like a wide angle lens?
A fisheye acts like a wide-angle lens when the sensor is smaller than the lens image circle. Only the central portion of the projection reaches the sensor, so diagonal coverage narrows and apparent curvature drops. A full-coverage fisheye can fall to 160° diagonal or less. A 1.9mm equidistant fisheye on a 4.5mm-diagonal sensor delivers roughly 136° diagonal (θ = 2.25mm/1.9mm ≈ 67.8° half-angle).
Fisheye fill factor (distinct from pixel fill factor, the photosensitive fraction of a pixel) describes how the image circle relates to the sensor. There are three cases. A circular fisheye forms an image circle smaller than the sensor, so the full hemispheric image sits as a circle inside the frame. A full-frame fisheye matches the sensor diagonal, and a cropped fisheye pairs the lens with a smaller sensor, sampling only the central region.
To size a specific pairing, compare the sensor diagonal against the lens image circle and compute coverage with the field-of-view calculator, which accounts for distortion. Sensor format names such as 1/2.3" or 1/1.8" do not match actual millimeter dimensions, so verify the active-area diagonal on the image sensor reference rather than converting the fraction.
Why does lens distortion matter for computer vision?
Distortion changes the scale of objects across the field of view, both radially and tangentially, which deforms them. A CNN detector trained on one distortion profile loses accuracy behind a different one, because activations land in the wrong places. Train on data that carries your system's distortion profile, or undistort before inference at the cost of extra computation and a possible crop of the field.
Pei et al. ("Effects of Image Degradations to CNN-based Image Classification") show how degradations including distortion affect classification, while Li et al.'s ULSD work detects line segments directly on distorted imagery rather than undistorting first.
Because undistortion remaps and resamples edge content, some teams train detection directly on the native fisheye projection instead of undistorted crops. Which one wins depends on the pipeline, so validate it on your own data. Decide one thing before choosing the lens: does the algorithm work on the native projection, or does it need undistorted frames? Commonlands can supply per-lens distortion data to support that call.
How do I calibrate a fisheye lens for computer vision?
Use OpenCV's cv2.fisheye namespace, which implements the Kannala-Brandt distortion model. Capture 15-30 checkerboard images across the frame, detect and refine corners, then call cv2.fisheye.calibrate() to solve for the camera matrix K and coefficients k1 through k4. The same coefficients drive undistortion and 3D reconstruction. Commonlands specifies each fisheye lens's projection, so the CIL819 (stereographic) maps to the right calibration model from the start.
- Capture calibration images Take 15-30 images of a checkerboard pattern at various angles and distances, ensuring the pattern appears in different regions of the frame, including corners.
- Detect corners Use cv2.findChessboardCorners() to locate the checkerboard corners in each image.
- Refine corners Apply cv2.cornerSubPix() for sub-pixel accuracy.
- Calibrate Call cv2.fisheye.calibrate() with the object points and image points to obtain the camera matrix K and distortion coefficients D.
- Undistort Use cv2.fisheye.undistortImage() or cv2.fisheye.initUndistortRectifyMap() for real-time correction.
- Check the result cv2.fisheye.calibrate() returns the RMS reprojection error in pixels. Compare it against your pixel pitch and accuracy target rather than a fixed threshold, and re-shoot if the frame edges are sparsely covered, since the k3 and k4 terms are driven mostly by the outer field.
Choosing Between Fisheye and Wide Angle Lenses by Application
Mobile robotics, overhead surveillance, and automotive surround view benefit most from fisheye lenses because a single camera covers 180° or more, and low-F/# fisheyes hold up in indoor light. Dimensional measurement, inspection, and lane detection favor rectilinear wide-angle optics. All three read geometry directly from pixel positions. SLAM pipelines generally prefer equidistant fisheyes for their uniform angular resolution. Commonlands stocks M12 lenses in both projection families.
For SLAM, wider coverage shrinks feature-tracking dead zones during rotation and adds loop closures. ORB-SLAM3 and VINS-Fusion support fisheye models natively, so the calibration cost is lower than it once was. See lenses for robotics for platform picks.
Top Fisheye and Wide Angle M12 Lens Picks
| Rank | Lens (SKU) | Projection | EFL | Max FoV (published) | Best for |
|---|---|---|---|---|---|
| Fisheye picks (equidistant and stereographic, 160° and up) | |||||
| 1 | Small 1.9mm stereographic lens (CIL819) | Stereographic fisheye | 1.9mm | 160° | Shape-preserving wide coverage in a compact barrel |
| Rectilinear wide-angle picks (straight lines preserved, under 180°) | |||||
| 2 | Low distortion 2.7mm lens (CIL027) | Rectilinear | 2.7mm | 100° @ 6.3mm image circle | Straight-line detection and measurement on 8MP sensors |
| 3 | Low distortion 3.25mm lens (CIL034) | Rectilinear | 3.25mm | 102° @ 8.0mm image circle | Low-distortion metrology, IP67-sealed variant for outdoor use |
All three lenses ship from San Diego, CA; orders placed before 12 PM PST ship the same day. Commonlands is ISO 9001:2015 certified and lenses are RoHS compliant. Datasheets with projection and distortion curves are on each product page.
Frequently asked questions
Commonlands stocks both rectilinear wide-angle and fisheye M12 lenses. These answers separate the projection models behind them.
What is the difference between a fisheye lens and a wide angle lens?
According to Smith's Modern Optical Engineering, a fisheye lens has a field of view of 180° or more. A wide angle lens provides a large field of view but less than 180°. A fisheye lens can act as a wide angle lens when paired with a smaller sensor that crops the image circle, but a wide angle lens is not necessarily a fisheye.
Is a fisheye lens just a wide-angle lens with more distortion?
No. A fisheye is a different projection design, not a wide-angle lens pushed past its limits. Rectilinear lenses actively correct barrel distortion. Fisheye lenses intentionally use a non-rectilinear mapping to achieve coverage of 180° or more. The curved-line rendering in a fisheye image is a geometric consequence of the projection, not a manufacturing defect.
What is barrel distortion in camera lenses?
Barrel distortion is where magnification decreases with distance from the optical axis, causing straight lines to curve outward like a barrel. For conventional lenses this is classified as a third-order (Seidel) transverse aberration. In fisheye lenses the curvature is the intended projection mapping, far beyond the third-order regime, not an aberration. It is present in fisheye lenses and most wide-angle lenses, and increases with field angle.
What are the different fisheye projection models?
The four main lens projection models are one rectilinear reference mapping plus three fisheye mappings. Rectilinear (r = f·tan(θ)) preserves straight lines but cannot reach 180° and is not a fisheye projection. Equidistant (r = f·θ) provides linear angle-to-radius mapping ideal for angular measurement. Equisolid or equal-area (r = 2f·sin(θ/2)) preserves area ratios, and stereographic (r = 2f·tan(θ/2)) preserves local shapes and angles.
How do I calibrate a fisheye lens for computer vision?
Use OpenCV's cv2.fisheye namespace with the Kannala-Brandt distortion model. Capture 15-30 checkerboard images at various angles, detect corners with cv2.findChessboardCorners(), then call cv2.fisheye.calibrate() to obtain intrinsic parameters and distortion coefficients (k1-k4). These coefficients drive undistortion and 3D reconstruction. Check the reported reprojection error to confirm calibration quality.
Need help choosing a projection model?
Commonlands optical engineers in the US can help you match a projection model to your algorithm, verify image-circle coverage on your sensor, and pull calibration-ready distortion data. ISO 9001:2015 certified. Orders placed before 12 PM PST ship the same day from San Diego.



