We derive, from the pinhole camera model, the ground footprint of a tilted, mast-mounted CCTV camera: the near- and far-edge intersections, the geometric blind spot directly under the mount, and the DORI target distances of EN 62676-4 rendered as on-ground arcs. Every figure below is computed live by the geometry module that ships with the CCTVplanner designer — move the sliders to reproduce each result. We close with lens-projection models, the datasheet HFOV/DFOV trap, obstacle shadowing, a parameter error budget, and the assumptions under which the model can be trusted.
- ground
- plane z = 0
- camera
- optical centre at height z = h
- axes
- +x right · +y forward · +z up
- tilt α
- measured downward from horizontal
- rays
- cast from the optical centre in basis (f, r, u)
- angles
- radians in derivatives; degrees in the figures
A purely geometric model of where a camera’s rays land. Within its stated assumptions it is geometrically exact — mathematically precise, though bounded in scope. It does not attempt to model:
- image quality or sensor noise
- video compression artefacts
- lighting, low-light, or IR reach
- AI / analytics detection accuracy
1From frustum to ground footprint
A pinhole camera defines a view frustum: a four-sided pyramid extending from the camera’s optical centre out to the boundaries of its image plane. Each image point — a pixel centre in the discrete implementation — defines a viewing ray from the optical centre through the image plane. To find the region of ground a camera covers, we intersect each ray with the ground plane and keep the points inside the camera’s range. The pinhole model is used here because it gives an analytically tractable approximation that matches the geometric assumptions of EN 62676-4 and the published specifications of most fixed CCTV cameras.
For a camera at height h, tilted by α below horizontal, with a vertical field of view vfov, the outer envelope of coverage is traced by the image boundary — for a rectilinear projection the four corner rays alone define it, while for fisheye projections it is sampled along the whole boundary. In typical mounts (where ) the shape is an approximately trapezoidal footprint with curved corners — not a triangle or a sector originating at the mount. As approaches 90° (steep ceiling domes), the lower image edge meets the ground at the base of the mast and the footprint degenerates toward a sector.
2Near- and far-edge intersection
Each image-plane sample (s_H, s_V) ∈ [−1, 1]² maps to a viewing-ray direction in the camera frame:
where f, r, u are the forward / right / up camera basis vectors (pan and tilt already applied) — this is where HFOV and VFOV enter the geometry. Intersecting the ray from the optical centre along d with the ground plane z = 0 gives each footprint sample. The lower-edge ray (s_V = −1) meets the ground at the near distance, the upper-edge ray (s_V = +1) at the far:
For the lateral edges (s_H = ±1) the same construction runs in the horizontal plane. For rectilinear lenses (the dominant CCTV optic) these project to diverging straight lines — the trapezoid’s slanted sides. For fisheye lenses the mapping is curved and the footprint becomes a curved disk.
3The geometric blind spot
For any camera mounted above the ground and tilted less than , a region directly under the mount receives no ray. Everything closer than d_near is outside the image entirely, and with tilt and FOV fixed the blind spot scales linearly with height:
A camera at 15° tilt with a 50° vertical FOV has a blind spot of 4.8 m at 4 m and 23.8 m at 20 m — a 5× ratio matching the height ratio. The ratio of blind area to coverage area is the dominant constraint on high-mast placement.
4DORI ranges (EN 62676-4)
The DORI standard (Detect / Observe / Recognize / Identify) defines target pixel densities — Identify 250, Recognize 125, Observe 62.5, Detect 25 px/m. A given density is reached at a specific slant (line-of-sight) distance from the lens: the object distance in the imaging relation . To place a tier on a 2D map the designer projects that slant distance onto the ground as a horizontal ring at radius (the module’s slantToGroundRadius), clipped by the footprint. So the arcs are horizontal ground radii derived from the slant tier distance — they equal the slant distance only for a ground-level camera and pull inward as the mount rises. Section 10 maps these px/m tiers to the screen-height, pixels-per-foot, and line-pair criteria used elsewhere in the world.
250 px/m
125 px/m
62.5 px/m
25 px/m
slantToGroundRadius, so each label shows the horizontal radius . Raise h and the near tiers pull in, then vanish once the camera sits above the slant sphere. Narrow the hfov and the cone gets too thin to hold the outer rings.The ground projection. Each tier’s slant distance becomes a horizontal ground radius:
A 6 m-mounted camera whose Identify tier (250 px/m) is reached at an 8 m slant distance covers a 5.3 m horizontal ground radius (). This is exactly the projection the designer, PDF, and DXF exports apply to every tier. (A legacy fallback — PTZ cameras and cameras with no mount-height / blind-spot config — draws the raw slant distance as a flat radius without the height correction.)
5Lens projection models
Different lens designs map the angle θ from the optical axis to the image-plane radius r(θ) differently. The three used in CCTV:
| Projection | r(θ) | Typical range |
|---|---|---|
| Rectilinear | HFOV ≲ 120° — most fixed & varifocal lenses | |
| Equidistant | HFOV ≳ 140° — panoramic / fisheye | |
| Equisolid | Fisheye preserving solid angle |
For rectilinear lenses the off-axis factor exceeds 1 once θ passes 45° (HFOV > 90°) and diverges as θ → 90°. As a numerical approximation — an implementation choice, not a property of the optics — CCTVplanner uses rectilinear up to 170° HFOV, then switches to equidistant for stability; equisolid is supported in the geometry layer for manufacturer data that specifies it.
Datasheet trap: HFOV vs DFOV
Many manufacturers — particularly Dahua, Hikvision, Uniview, Tiandy — quote a single FOV number that’s actually the diagonal field of view (DFOV). Feeding a DFOV into a tool that expects HFOV yields a footprint 10–15% too wide, with the error concentrated at the lateral edges where pixel density matters most. For a sensor of aspect ratio a (16:9 → a = 16/9):
The mapping is non-linear: a tempting linear shortcut works for narrow lenses but fails badly as the field widens. For a 16:9 sensor:
| DFOV | Exact HFOV | Exact VFOV | Linear-shortcut error |
|---|---|---|---|
| 60° | 53.4° | 31.6° | −1.1° |
| 80° | 72.4° | 44.7° | −2.6° |
| 100° | 92.2° | 60.6° | −5.0° |
| 120° | 113.0° | 80.7° | −8.4° |
| 140° | 134.7° | 106.8° | −12.7° |
6Obstacles, shadows, and the visible footprint
Walls and fences block rays. Each opaque obstacle is modelled as a polygon or polyline; every segment is projected away from the camera to several times the render range, and the union of those per-segment shadows is the obstacle’s silhouette plus everything behind it. The visible footprint is then , via the Martínez–Rueda polygon-difference algorithm.
For 3D-aware analysis, an obstacle shorter than the camera casts a finite ground shadow. For a wall at horizontal distance d, camera height h_cam, obstacle top h_obs:
For the obstacle blocks the line of sight entirely — an infinite shadow, treated as a fully opaque blocker. For buildings and generic obstacles this finite-height model is always applied whenever the camera sits above the structure; for fences it is gated by the "Use vertical height (3D)" toggle (default: opaque blocker). The shadow-end math lives in obstacleTypes.ts; obstacleClipping.ts runs the polygon-difference subtraction.
7Multi-floor projection
The frustum-to-ground intersection generalises to any horizontal plane: replace with , solve the same ray-plane equation for every corner ray, and the result is the footprint on that floor. A camera on the second storey of an atrium covers the ground floor by the same construction — just a different z_target and vertical offset.
8Assumptions and limits
Every formula above rests on simplifying assumptions. They hold for the bulk of fixed-mount CCTV but break in specific conditions — documented so practitioners know when to trust the model.
Model assumptions
- Flat ground — no slope, no Earth curvature.
- Static camera at capture — no PTZ motion, no vibration.
- Pinhole model — no Brown–Conrady lens distortion (k₁, k₂, p₁, p₂).
- Ideal calibration — pitch, focal length, optical centre match spec.
- No rolling shutter; whole frame captured at one instant.
- No camera roll; sensor stays horizontal.
- Single optical path — no dome refraction, no reflections.
When it breaks down
- Sloped terrain — footprint shifts asymmetrically, error ≈ ±h·tan(slope) per metre.
- Wide-angle distortion — beyond ~110° HFOV rectilinear can diverge by several percent at the corners (lens, calibration, and model dependent).
- Glass domes — mm-scale refractive shift; matters only for high-precision DORI.
- Multi-bounce optics — reflections are not traced; line-of-sight only.
- PTZ in motion — the model gives one pan/tilt; coverage is the swept footprint.
- Install tolerance — real angles deviate 1–3°; §9 quantifies the impact.
9Error sensitivity
Input errors (height, tilt, FOV) propagate to ground-position error. For the near intersection , the partial derivatives are:
Angular partials are in radians (× for per-degree). For a typical config (h = 10 m, tilt = 15°, vfov = 50° → d_near ≈ 11.9 m):
| Parameter | Input error | Δ d_near | Note |
|---|---|---|---|
| tilt α | ±1° | ±0.42 m | inclinometer resolution |
| tilt α | ±3° | ±1.27 m | eyeball bracket install |
| height h | ±0.5 m | ±0.59 m | tape, inaccessible mast |
| vfov | ±1° | ±0.21 m | datasheet rounding |
| combined | RMS | ~1.4 m | at 3° + 0.5 m + 1° |
Put plainly: a 1° installation error can shift the Identify zone by more than the width of a doorway. Install-angle uncertainty dominates: every degree of tilt error costs ~42 cm at d_near here. A laser inclinometer to 0.1° keeps tilt-driven error under 5 cm; an eyeballed bracket is good to ~±1 m. For DORI tier verification — where Recognize and Identify rings can sit 2–3 m apart — tilt should be measured, not estimated.
10Target-distance criteria across standards
DORI is the international lingua franca, but a designer works under whatever standard the jurisdiction mandates. Every framework encodes the same physical quantity — required detail at a distance — in one of four units: pixels per metre, percentage of screen height, pixels per foot, or Johnson line-pairs. The geometry above is identical; only the readout changes.
| Region | Standard | Unit | Detect / Recognise / Identify | vs DORI |
|---|---|---|---|---|
| Intl · EU | IEC / EN 62676-4 (2014·2025) | px/m | 25 / 125 / 250 (Obs 62.5) | reference ladder |
| EU legacy | EN 50132-7:2012 | % screen | 10% / 50% / 100% | screen-height form |
| UK | HOSDB 28/09 · Rotakin | % screen | 10% / 50% / 100%† | = EN 50132-7 |
| AU · NZ | AS 4806.2 → AS/NZS 62676 | % → px/m | 10% / 50% / 100% → DORI | migrating to DORI |
| US | DHS S&T handbook · PPF | px/ft | ~10 / 40 / 80 ppf | DORI × 0.305 |
| China | GB 37300-2018 | px on target | body ≥200 · face ≥300 · plate ≥100 | px-on-target |
| UAE | Dubai SIRA | px/m | 63.5 / 125 / 250 | ≈ DORI |
| India | BIS IS 16910-4 | px/m | = DORI | adopts IEC 62676-4 |
| Russia | GOST R 51558-2014 ‡ | inter-eye px | face ID ≥60 px IED ‡ | partial D/R/I |
| Mil · thermal | Johnson 1958 · TTP | line-pairs | 1.0 / 4.0 / 6.4 cyc | underlying model |
| Face biometric | ISO/IEC 19794-5 · 39794-5 | inter-eye px | ~10 / ~40 / ≥90 (IED) | floor under Identify |
† UK Identify = 100% of screen height (HOSDB 28/09, 2009); the earlier PSDB 17/94 / Rotakin specification used 120%. Criteria are for a ~1.6–1.7 m reference person. ‡ Russia GOST R 51558 is low-confidence here — the primary text is paywalled and secondary sources disagree, so treat the value as indicative. Face-biometric IED = inter-eye (pupil-to-pupil) distance: the pixel floor that "Identify" ultimately rests on.
Not every jurisdiction fixes a number. Canada (RCMP GCPSG-011) and, in practice, Saudi Arabia (HCIS) require camera performance to be justified by a site risk assessment rather than a set pixel target, and Japan publishes no dedicated CCTV distance criterion.
The 2025 revision of IEC 62676-4 replaces the four DORI tiers with a seven-step OODPCVS ladder — Overview, Outline, Discern, Perceive, Characterise, Validate, Scrutinise — at 20 / 40 / 80 / 125 / 250 / 500 / 1500 px/m. The CCTVplanner engine computes both.
Because all four units measure the same thing, they inter-convert exactly given the sensor resolution and the target’s size:
So one distance in the engine reads out as 250 px/m (DORI Identify), 100% screen height (EN 50132-7 / HOSDB), 76 px/ft (US), or 6.4 line-pairs (Johnson) — the same camera, four vocabularies.
11Common misconceptions
Four confusions account for most of the gap between a paper design and what gets installed — each a direct consequence of the geometry above.
12Reproducibility
Every formula here is implemented directly in the geometry module that ships with the CCTVplanner designer — without approximation beyond numerical sampling, polygon clipping, and floating-point ordering — covered by a unit-test suite across rectilinear / equidistant / equisolid projections, blind-spot edge cases, DORI ground projection, polygon-Boolean obstacle clipping, and the multi-floor extension. Every figure on this page calls those same functions.
Key entry points
buildFrustum(args)— camera basis + frustum metadatacomputeGroundFootprint(frustum, projection)— sampled footprint polygonslantToGroundRadius(frustum, slantM)— with reachability checksubtractObstacleShadows(footprint, shadows)— Martínez–Rueda differencecomputeFloorFootprint(frustum, z, projection)— multi-floor variant
§References
- [1]IEC 62676-4:2014 (with amendments) — Video surveillance systems for use in security applications, Part 4: Application guidelines (DORI target distances). Published as EN 62676-4 in Europe.
- [2]Hartley & Zisserman, Multiple View Geometry in Computer Vision, 2nd ed., Cambridge University Press, 2004.
- [3]Kannala & Brandt, "A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses," IEEE TPAMI, 2006.
- [4]Martínez, Rueda & Feito, "A new algorithm for computing Boolean operations on polygons," Computers & Geosciences, 2009 — with the 2013 follow-up in Advances in Engineering Software.
- [5]Szeliski, Computer Vision: Algorithms and Applications, 2nd ed., Springer, 2022 (projection models, camera geometry — standard reference).
- [6]EN 50132-7:2012 — Alarm systems, CCTV surveillance systems, Part 7: Application guidelines (screen-height operational requirements; superseded by EN 62676-4).
- [7]IEC 62676-4:2025 (Ed. 2) — Application guidelines introducing the OODPCVS seven-step pixel-density ladder.
- [8]US DHS Science & Technology, Digital Video Quality Handbook, 2013 (updated 2018) — pixels-per-foot guidance for public-safety video.
- [9]GB 37300-2018 — Public security video surveillance (China, mandatory), §5.6 target-pixel requirements.
- [10]Johnson, J. (1958), "Analysis of image-forming systems," Proc. Image Intensifier Symposium — with the NVESD Targeting Task Performance (TTP) successor, Vollmerhausen & Jacobs, Opt. Eng. 43(11), 2004.
- [11]ISO/IEC 19794-5:2011 & ISO/IEC 39794-5:2019 — Biometric face-image data (inter-eye pixel criteria for face recognition and enrolment).
CCTVplanner Research. The Geometry of CCTV Camera Coverage. Technical Note CP-TN-01, v1.0, 2026. cctvplanner.io/camera-physics
@techreport{cctvplanner-cptn01-2026,
title = {The Geometry of CCTV Camera Coverage},
author = {{CCTVplanner Research}},
number = {CP-TN-01},
version = {1.0},
year = {2026},
url = {https://cctvplanner.io/camera-physics}
}Every figure in this note is generated by the same geometry engine used by the CCTVplanner designer.
Open the designer