{"id":13026,"date":"2026-09-14T07:35:00","date_gmt":"2026-09-14T05:35:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13026"},"modified":"2026-10-26T13:27:56","modified_gmt":"2026-10-26T12:27:56","slug":"tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/","title":{"rendered":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height"},"content":{"rendered":"<p>A camera layout connects each position to a clear task: following activity across a yard, capturing characteristics at a gate or recognizing a known person at an entrance. That task determines the required framing and detail. Resolution, lens and mounting position follow from those requirements.<\/p>\n<p>Calculations narrow the choice of suitable configurations. Whether the recording actually performs the task requires testing with movement, difficult lighting and the stream intended for recording.<\/p>\n<figure class=\"lw-diagram\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-13026-review-20261024.png\" width=\"1120\" height=\"580\" decoding=\"async\" loading=\"lazy\" alt=\"Camera planning: targets, geometry, testing: A calculated pixel density is not an identification guarantee\"><figcaption>Pixel density states how many image pixels cover one metre of the observed area. A calculated pixel density is not an identification guarantee. Lens, viewing angle, lighting and compression must jointly meet the actual task.<\/figcaption><\/figure>\n<h2>1. Task and standard edition<\/h2>\n<p>The familiar DORI values belong to the older IEC 62676-4:2014 model: Detect 25, Observe 62.5, Recognize 125 and Identify 250 pixels per metre. These numbers do not form a uniform doubling sequence. DORI remains present in datasheets and design tools.<\/p>\n<p>The second edition, IEC 62676-4:2025, was published on 9 October 2025. The current Axis explanation lists seven detail levels. Keeping the original English names avoids confusion with the older DORI labels:<\/p>\n<table><thead><tr><th>IEC 62676-4:2025<\/th><th>px\/m<\/th><\/tr><\/thead><tbody><tr><td>Overview<\/td><td>20<\/td><\/tr><tr><td>Outline<\/td><td>40<\/td><\/tr><tr><td>Discern<\/td><td>80<\/td><\/tr><tr><td>Perceive<\/td><td>125<\/td><\/tr><tr><td>Characterize<\/td><td>250<\/td><\/tr><tr><td>Validate<\/td><td>500<\/td><\/tr><tr><td>Scrutinize<\/td><td>1500<\/td><\/tr><\/tbody><\/table>\n<p>Characterize concerns visible characteristics such as gait and behaviour. Validate concerns checking known persons; Scrutinize targets a much more confident identity assessment. These are task categories for human evaluation, not success guarantees.<\/p>\n<p>In this model, 250 px\/m belongs to Characterize, not to a general promise of identification. The plan must record the edition, specific task and numerical target together. These levels concern human interpretation of visible-light images; automated analytics and thermal imaging need suitable separate requirements.<\/p>\n<p>Meeting a pixel target does not guarantee a usable face or licence plate. Viewing direction, occlusion and image quality remain decisive. The 250 px\/m target below is an example for calculation, not a general recommendation for every identification task.<\/p>\n<h2>2. Test areas on the floor plan<\/h2>\n<p>A scaled plan records target areas, possible routes, obstructions and mounting positions. A passage may need a detailed view while another camera records activity across the yard. The requirements determine the number and placement; no fixed rule of two or three cameras follows.<\/p>\n<p>Each target area has a near and a far boundary. Lighting, low sun, glass, reflections and potential occlusion also matter. Direction and shielding can reduce backlight. Wide Dynamic Range (WDR) aims to keep detail visible in both bright and dark parts of a scene. WDR may help but needs testing and can itself introduce motion artifacts, depending on the method. A generic gain of one or two stops is not a reliable device specification.<\/p>\n<p>Unwanted areas such as neighbouring windows belong in the initial planning. Technical coverage alone does not establish permission to capture an area.<\/p>\n<h2>3. Scene width and pixel density<\/h2>\n<p>The following relationships describe a simplified distortion-free model. <code>W<\/code> is scene width in metres, <code>d<\/code> the axial distance to the target plane, <code>S<\/code> active sensor width and <code>f<\/code> focal length in matching units. <code>N<\/code> is the horizontal pixel count of the image actually used, and <code>P<\/code> is pixel density. <code>HFOV<\/code> means horizontal field of view; the tangent function must use the intended angle units.<\/p>\n<figure style=\"--cbb-digits:1\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">W = d \u00d7 S \/ f\n<\/span><span class=\"cbb-line\">P = N \/ W\n<\/span><span class=\"cbb-line\">W = 2 \u00d7 d \u00d7 tan(HFOV \/ 2)<\/span><\/code><\/pre><\/figure>\n<p>The model describes a plane perpendicular to the optical axis. Sloping target areas, strong wide-angle distortion and dewarped images require more than a single distance. A manufacturer&#8217;s field of view describes outer coverage, not uniform local pixel density across the whole frame.<\/p>\n<p>The example assumes 5.6 mm active sensor width and a recording 3840 pixels wide. A 1\/2.8-inch designation is an optical format and does not establish exactly the same active width for every camera. Device specifications determine the active area and any cropping.<\/p>\n<figure style=\"--cbb-digits:1\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">N = 3840 px; S = 5.6 mm; d = 20 m\n<\/span><span class=\"cbb-line\">W_max (P = 250 px\/m) = 3840 \/ 250 = 15.36 m\n<\/span><span class=\"cbb-line\">f_min = 20 \u00d7 5.6 \/ 15.36 = 7.29 mm\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">f = 8.0 mm: W = 14.00 m; P = 274.3 px\/m\n<\/span><span class=\"cbb-line\">f = 6.0 mm: W = 18.67 m; P = 205.7 px\/m\n<\/span><span class=\"cbb-line\">f = 2.8 mm: W = 40.00 m; P = 96.0 px\/m<\/span><\/code><\/pre><\/figure>\n<p>An 8 mm lens exceeds the selected target at 20 m in this model. At the same time, the entire required area must fit within the 14 m scene width. The next longer lens is therefore not automatically the right purchase: added detail may exclude important routes. A varifocal lens has an adjustable focal length and helps adjust framing but still requires checking the final view.<\/p>\n<p>With the same assumptions, the 8 mm lens reaches 250 px\/m at approximately 21.9 m, 500 px\/m at 11.0 m and 1500 px\/m at 3.7 m. These are geometric density thresholds, not guaranteed identification distances.<\/p>\n<h2>4. Mounting height and viewing direction<\/h2>\n<p>High pixel density is of limited use when the image mostly shows the top of a head. The vertical viewing angle to a target follows from the height difference and horizontal distance:<\/p>\n<figure style=\"--cbb-digits:1\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">angle = atan((H_camera \u2212 H_target) \/ D_horizontal)\n<\/span><span class=\"cbb-line\">H_camera = 3.0 m; H_target = 1.6 m\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">D_horizontal = 20 m: 4.0\u00b0\n<\/span><span class=\"cbb-line\">D_horizontal =  5 m: 15.6\u00b0\n<\/span><span class=\"cbb-line\">D_horizontal =  2 m: 35.0\u00b0<\/span><\/code><\/pre><\/figure>\n<p>These numbers do not establish real-world face recognition performance. A side view or a face turned away may remain unsuitable despite a shallow vertical angle. A 20-degree limit also cannot produce a general mounting recommendation of 2.5\u20133.5 m: at 20 m horizontal distance and 1.6 m target height, that angular limit corresponds to about 8.88 m. Actual height depends on visibility, required detail, tamper protection and safe mounting.<\/p>\n<p>Infrared range also needs a specific device profile. Beam angle, output, reflections and target surfaces affect results. A 30 m rating implies neither a universal narrowest-lens measurement nor a general one-third range in a wide view.<\/p>\n<h2>5. Documentation of every target distance<\/h2>\n<p>The following table retains the simplified model with 5.6 mm sensor width and 3840 image pixels. Tasks are design objectives; each still needs acceptance testing.<\/p>\n<table><thead><tr><th>Position \/ task<\/th><th>Distance<\/th><th>Lens<\/th><th>Height<\/th><th>px\/m<\/th><\/tr><\/thead><tbody><tr><td>Gate \/ details<\/td><td>20 m<\/td><td>8 mm<\/td><td>3.0 m<\/td><td>274<\/td><\/tr><tr><td>Yard \/ overview<\/td><td>12 m<\/td><td>4 mm<\/td><td>3.5 m<\/td><td>229<\/td><\/tr><tr><td>Yard \/ overview<\/td><td>30 m<\/td><td>4 mm<\/td><td>3.5 m<\/td><td>91<\/td><\/tr><tr><td>Entrance \/ details<\/td><td>4 m<\/td><td>2.8 mm<\/td><td>2.6 m<\/td><td>480<\/td><\/tr><\/tbody><\/table>\n<p>The overview camera provides about 229 px\/m at 12 m, already below the example target of 250. At 30 m, about 91 px\/m remain. One density figure for the entire yard would be misleading. The entrance figure of 480 is also below 500; a higher target requires a different configuration.<\/p>\n<p>The complete plan also records the recording stream, analytics stream, frame rate, compression, lighting, acceptance criterion and retention period. Longer retention increases storage demand at an unchanged bitrate; duration does not change bitrate automatically. At identical framing, a 1920-pixel stream has half the horizontal density of a 3840-pixel stream.<\/p>\n<h2>6. Acceptance testing of recorded movement<\/h2>\n<p>A smartphone photo helps locate obstructions and unwanted areas. A generic full-frame equivalent focal length is not an accurate lens simulation: aspect ratio, stabilization, cropping and capture mode affect framing. A central crop to half the width represents a doubled focal length only under matching projection and format assumptions.<\/p>\n<p>Acceptance testing uses the final recording at full output resolution. A known dimension in the target area allows local pixel measurement. The frequently used 16 cm face width is a model assumption: 250 px\/m then gives 40 pixels, but faces vary in width and 40 pixels do not prove the required image quality.<\/p>\n<p>Geometric density remains unchanged at night if framing and resolution remain unchanged. Visible detail can still disappear through noise, focus errors, compression and motion blur. For approximately uniform transverse movement:<\/p>\n<figure style=\"--cbb-digits:1\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"plain\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Text<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-plain\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\">blur_px \u2248 transverse_speed_m_s \u00d7 exposure_s \u00d7 density_px_m\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">1.4 m\/s \u00d7 1\/30 s  \u00d7 274 px\/m = 12.8 px\n<\/span><span class=\"cbb-line\">1.4 m\/s \u00d7 1\/100 s \u00d7 274 px\/m =  3.8 px\n<\/span><span class=\"cbb-line\">1.4 m\/s \u00d7 1\/250 s \u00d7 274 px\/m =  1.5 px<\/span><\/code><\/pre><\/figure>\n<p>Consequently, 1\/100 second is not a universal limit for adequate sharpness. Acceptable blur and expected movement determine the required exposure time; shorter exposures need sufficient light. Stationary test subjects alone do not test this case.<\/p>\n<p>The test matrix covers centre and edge, near and far positions, daylight, backlight, night and typical movement. Changes to zoom, resolution, compression or lighting require repeating the affected checks. Results, settings and sample recordings become part of the plan.<\/p>\n<div class=\"lw-faq\"><h2>Questions and answers<\/h2>\n<h3>Why does a planning tool still show DORI?<\/h3><p>Tool version and standard model can differ. The September 2026 Axis white paper still describes 2014 DORI presets in Site Designer and manual entry of values from the 2025 edition. A green coverage area without its model and target is insufficient evidence.<\/p>\n<h3>Does corridor format preserve pixel density?<\/h3><p>With a true 90-degree rotation, square pixels and unchanged scale, local density remains unchanged. Image width and height exchange roles. Additional cropping or scaling in a camera mode may change the result and needs checking again.<\/p>\n<h3>Is a sharp live view sufficient?<\/h3><p>The stream used for later evaluation matters. A live view may use different resolution or compression. Acceptance therefore relies on the actual recording, including moving subjects under difficult lighting.<\/p><\/div>\n<div class=\"lw-quellen\"><h2>Sources<\/h2><ul><li><a href=\"https:\/\/webstore.iec.ch\/en\/publication\/83425\">IEC 62676-4:2025<\/a><\/li><li><a href=\"https:\/\/whitepapers.axis.com\/en-us\/pixel-density-based-on-iec-62676-4-2025\">Axis: Pixel density based on IEC 62676-4:2025<\/a><\/li><li><a href=\"https:\/\/whitepapers.axis.com\/en-us\/lenses-in-surveillance\">Axis: Lenses in surveillance<\/a><\/li><li><a href=\"https:\/\/help.axis.com\/en-us\/troubleshooting-image-quality\">Axis: Troubleshooting image quality<\/a><\/li><li><a href=\"https:\/\/help.axis.com\/en-us\/axis-site-designer\">Axis Site Designer<\/a><\/li><li><a href=\"https:\/\/www.axis.com\/dam\/public\/a2\/a7\/9e\/datasheet-axis-p3275-lve-dome-camera-en-US-506777.pdf\">Axis P3275-LVE: datasheet<\/a><\/li><li><a href=\"https:\/\/whitepapers.axis.com\/en-us\/global-shutter-vs-rolling-shutter\">Axis: Global shutter vs rolling shutter<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>A camera layout connects each position with a task, field of view and detail target. The tutorial distinguishes old DORI values from IEC 62676-4:2025 and checks lens geometry, mounting angle and recorded movement under different lighting.<\/p>\n","protected":false},"author":1,"featured_media":23971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92648],"tags":[91398,91401,91219],"class_list":["post-13026","post","type-post","status-publish","format-standard","hentry","category-tutorials-en-cctv","tag-monitoring-cctv-pl","tag-poe","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-14T05:35:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T12:27:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height\",\"datePublished\":\"2026-09-14T05:35:00+00:00\",\"dateModified\":\"2026-10-26T12:27:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/\"},\"wordCount\":1349,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-13026-review-20261024-dark.png\",\"keywords\":[\"CCTV\",\"PoE\",\"Tutorial\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/\",\"name\":\"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-13026-review-20261024-dark.png\",\"datePublished\":\"2026-09-14T05:35:00+00:00\",\"dateModified\":\"2026-10-26T12:27:56+00:00\",\"description\":\"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-13026-review-20261024-dark.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/hero-13026-review-20261024-dark.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/cctv\\\/tutorials-en-cctv\\\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik","description":"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik","og_description":"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-14T05:35:00+00:00","article_modified_time":"2026-10-26T12:27:56+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height","datePublished":"2026-09-14T05:35:00+00:00","dateModified":"2026-10-26T12:27:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/"},"wordCount":1349,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png","keywords":["CCTV","PoE","Tutorial"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/","name":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png","datePublished":"2026-09-14T05:35:00+00:00","dateModified":"2026-10-26T12:27:56+00:00","description":"Marking choke points on a plan, deriving lens and mounting height from the required DORI level, and verifying the result before the cable goes in.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/hero-13026-review-20261024-dark.png","width":1200,"height":630,"caption":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/cctv\/tutorials-en-cctv\/tutorial-turning-a-floor-plan-into-a-camera-layout-with-lens-and-mounting-height\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Turning a Floor Plan into a Camera Layout with Lens and Mounting Height"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=13026"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13026\/revisions"}],"predecessor-version":[{"id":27384,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13026\/revisions\/27384"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/23971"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}