{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"about.html","title":"About Calib GEOM","text":"<p>Figure 1: Calib GEOM logo</p> <p>Calib GEOM is Calib.io's camera calibration and analysis application. Calib GEOM Web is free at geom.calib.io; Calib GEOM Pro is the licensed desktop edition. This guide covers both. See the edition comparison for the feature matrix.</p>"},{"location":"about.html#version","title":"Version","text":"<p>v2.0.2</p>"},{"location":"about.html#copyright","title":"Copyright","text":"<p>\u00a9 Calib.io ApS. All rights reserved.</p>"},{"location":"analysis.html","title":"Analysis","text":"<p>A useful calibration must work for your application, not just fit the calibration images. Use the steps below to review a result and decide what to improve.</p>"},{"location":"analysis.html#1-check-that-calibration-completed","title":"1. Check that calibration completed","text":"<p>Read the optimization outcome. Reaching a time or iteration limit may mean the result needs more work.</p> <p>Confirm that the intended cameras and observations were included. If you changed exclusions after the last run, optimize again before assessing the result.</p>"},{"location":"analysis.html#2-inspect-detections-and-outliers","title":"2. Inspect detections and outliers","text":"<p>Use RPE Bars to find images with unusually large errors, then inspect the original image and its detected features.</p> <p>Look for:</p> <ul> <li>Blur, glare, saturation, or occlusion.</li> <li>Incorrect target dimensions, spacing, or IDs.</li> <li>Mistaken or poorly localized features.</li> <li>Movement or synchronization problems in multi-camera capture.</li> </ul> <p>Exclude observations for a clear reason. Removing every difficult image may lower the error while leaving a weaker calibration.</p>"},{"location":"analysis.html#3-check-acquisition-geometry","title":"3. Check acquisition geometry","text":""},{"location":"analysis.html#coverage","title":"Coverage","text":"<p>Features should cover the usable sensor, including edges and corners. Check both Coverage and the actual detections: the coverage map shows target footprints, not feature density.</p> <p>Regions with no observations are less well supported. A low overall error does not tell you how well those regions are calibrated.</p>"},{"location":"analysis.html#tilt-distance-and-size","title":"Tilt, distance, and size","text":"<p>Use varied target tilts in both directions, different distances, and different image positions. A set of almost identical, front-facing views may leave important parameters poorly determined.</p> <p>The target should be large enough in the image for accurate localization without making all views identical. Very oblique views can also be difficult to detect reliably.</p> <p>Keep focus and aperture appropriate to the final application. Use stable mounting, sharp images, diffuse light, and a rigid, dimensionally stable target.</p> <p>To learn more about capture planning, read Calibration Best Practices.</p>"},{"location":"analysis.html#4-look-for-residual-patterns","title":"4. Look for residual patterns","text":"<p>Read RPE Magnitudes and Directions together. Random-looking small errors are generally more reassuring than smooth, repeated patterns.</p> <p>A pattern may come from the camera model, target, detection, or capture conditions. Investigate before adding model parameters. Use tooltips and statistics to compare numerical values; colours adapt to each camera.</p> <p>Statistical tests can highlight behaviour worth inspecting, but a p-value is not a calibration acceptance criterion.</p>"},{"location":"analysis.html#5-compare-model-candidates-using-held-out-performance","title":"5. Compare model candidates using held-out performance","text":"<p>Enable Compute Test RPE when comparing models or parameter choices. It evaluates observations held out from fitting.</p> Result What to consider Low fitted error, much higher Test RPE Check model flexibility, pose diversity, and difficult images. Similar fitted and Test RPE Encouraging, but still compare the error with your application needs. Incomplete or unavailable validation Resolve the limitation before relying on the test result. <p>Check per-camera results and validation coverage, not just the overall number. There is no universal acceptable pixel error or percentage difference.</p> <p>If you repeatedly use Test RPE to select a model, keep a separate acquisition for a final check.</p>"},{"location":"analysis.html#uncertainty-versus-validation","title":"Uncertainty versus validation","text":"<p>These diagnostics answer different questions:</p> Diagnostic Main question Reprojection error How well does the calibration fit these observations? Test RPE How well does it predict held-out observations? Parameter uncertainty and correlations How well do the data constrain the estimated parameters? Projection or triangulation uncertainty What might that uncertainty mean for image or 3D measurements? Independent reference measurements How accurate is the result for the actual task? <p>Large parameter uncertainty may call for better poses or a simpler model. Small uncertainty does not rule out a wrong target scale, model mismatch, or other systematic error. Fixed values are assumptions, not perfectly measured quantities.</p> <p>For triangulation, evaluate realistic working distances and feature noise. Use independent reference measurements to establish task accuracy.</p>"},{"location":"analysis.html#if-you-optimize-target-geometry","title":"If you optimize target geometry","text":"<p>Inspect Target Geometry and check whether the fitted changes are plausible. Allowing target points to move can reduce image errors without improving the true camera calibration.</p> <p>For dimensional work, verify the target independently rather than treating its fitted shape as a measurement certificate.</p>"},{"location":"analysis.html#review","title":"Review","text":"<p>Pro feature</p> <p>Offline Review requires Calib GEOM Pro and a supported installed model, and works on air-gapped devices. Cloud Review for Web is planned but is not currently available.</p> <p>Review helps you interpret calibration results and identify useful next steps. It summarizes the available diagnostics and highlights up to three priorities for review.</p> <p>It is an advisory tool: check its findings against the plots, your images, and your application's requirements.</p>"},{"location":"analysis.html#running-a-review","title":"Running a review","text":"<ol> <li>Optimize a calibration, or open a project with saved results.</li> <li>Wait for any diagnostic calculations to finish.</li> <li>Open the Review results tab.</li> <li>Choose an available model and select Analyze Calibration.</li> <li>Review the summary, evidence, and suggested actions.</li> </ol> <p>Use Cancel to stop a review, or Analyze Again to request another one. Changing the model or calibration clears the displayed assessment.</p> <p>If a model is disabled in the list, it is not installed.</p>"},{"location":"analysis.html#understanding-the-findings","title":"Understanding the findings","text":"Assessment What to do No obvious concerns Continue your normal quality checks; this is not an accuracy certificate. Concerns found Inspect the cited evidence and investigate the suggested priorities. Insufficient evidence Calculate missing diagnostics or collect more information before drawing a conclusion. <p>Findings are marked Info, Warning, or Critical to indicate the model's suggested priority. These labels are not independently verified diagnoses. Different models, or repeated reviews, can reach different conclusions.</p> <p>The review uses numerical summaries such as errors, coverage, validation, and uncertainty\u2014not the original camera images. It cannot see blur, glare, target defects, or other capture problems directly. Missing information remains a limitation of the review.</p>"},{"location":"analysis.html#privacy-and-saving-a-review","title":"Privacy and saving a review","text":"<p>Offline Review runs on your device; calibration diagnostics are not uploaded and it can be used on air-gapped devices. Cloud Review for Web is planned but is not currently available. When available, it will share calibration data with Calib.io's servers, where the data will be treated as confidential.</p> <p>Use Copy Review to keep the assessment. Reviews are not saved in the project. Copy Prompt copies the information used for the review so you can inspect it or use it elsewhere. If you paste it into an external service, you are sharing that information with the service; follow your organization's data policy.</p>"},{"location":"analysis.html#keep-a-record","title":"Keep a record","text":"<p>Record the intended application, capture conditions, model choice, exclusions, and any remaining concerns. Define acceptance limits around the measurement task, not a universal pixel threshold.</p> <p>Keep the source data, export the parameters, and create a calibration report. In Pro, also save the project. Offline Review, where available, can provide a second reading of the diagnostics, but the final decision is yours.</p> <p>To learn more about interpreting these diagnostics, read Understanding Reprojection Error and Understanding Parameter Uncertainty.</p>"},{"location":"analysis.html#glossary","title":"Glossary","text":"<ul> <li>Pose: one target placement in the image sequence.</li> <li>Feature: an identified point on the target.</li> <li>Intrinsics: parameters describing a camera's projection and distortion.</li> <li>Extrinsics: the position and orientation of one coordinate frame relative   to another.</li> <li>Residual: the difference between a predicted and detected feature position.</li> <li>Covariance: a description of estimated uncertainty and how parameters vary   together.</li> </ul>"},{"location":"calibration_reports.html","title":"Calibration reports","text":"<p>Choose Calibration \u2192 Export Calibration Report to save an HTML report of your calibration and its available results. Use it for review, record keeping, or sharing with colleagues and customers.</p>"},{"location":"calibration_reports.html#before-exporting","title":"Before exporting","text":"<ol> <li>Run optimization after your final changes to the dataset or exclusions.</li> <li>Review the results using Analysis.</li> <li>If you need Test RPE or uncertainty estimates, enable them in    Optimization and calculate them before exporting.</li> </ol> <p>The report uses the saved results of the latest calibration; exporting does not rerun optimization or validation.</p>"},{"location":"calibration_reports.html#what-the-report-includes","title":"What the report includes","text":"<p>Both editions include:</p> <ul> <li>Software version and report-generation date.</li> <li>Camera information and calibration parameters.</li> <li>Parameter uncertainty where available.</li> <li>Initialization and convergence information.</li> <li>Reprojection-error plots, maps, and statistics.</li> <li>Test RPE and validation coverage where available.</li> </ul> <p>Unavailable diagnostics are not evidence of a good or bad result. Check validation status before interpreting Test RPE. The report date is the date of export, not the date the images were captured.</p>"},{"location":"calibration_reports.html#detailed-statistical-analysis","title":"Detailed statistical analysis","text":"<p>Pro feature</p> <p>Detailed report statistics require Calib GEOM Pro. Parameters, residual diagnostics, validation, and uncertainty remain available in Web reports.</p> <p>Pro reports additionally include the available detailed statistical tests and per-target and per-pose summaries. Per-feature statistics are kept in the separate statistics text export, not the HTML report.</p> <p>Offline Review assessments are separate and are not included. In Pro, use Copy Review in the Review tab if you want to keep one.</p>"},{"location":"calibration_reports.html#saving-sharing-and-printing","title":"Saving, sharing, and printing","text":"<p>The report is self-contained and can be opened in a browser without an internet connection. Keep the HTML file or use your browser's print function to create a PDF.</p> <p>Retain the original input data and parameter export alongside the report. In Pro, also save the project so the calibration can be continued later.</p> <p>A report documents the results; it is not a signed calibration certificate or an automatic pass/fail decision. Define acceptance criteria for your application and record your review conclusion.</p>"},{"location":"comparison.html","title":"Comparing calibrations","text":"<p>Use Calibration \u2192 Compare... to compare your current calibration with a previous parameter export. This is useful for checking repeatability or understanding the effect of a model or setting change.</p> <p>Comparison does not change your current calibration.</p>"},{"location":"comparison.html#choose-a-reference","title":"Choose a reference","text":"<p>Complete or import a calibration, then select the reference JSON file. Both calibrations must have the same device counts and ordering, with matching camera image dimensions. Devices are matched by order, not name.</p>"},{"location":"comparison.html#read-the-results","title":"Read the results","text":"<p>The log reports:</p> <ul> <li>Extrinsic differences: changes in the relative device positions and   orientations, in millimetres and milliradians where applicable.</li> <li>Intrinsic differences: how differently the calibrations project rays   into each camera, in pixels.</li> </ul> <p>These are differences between calibrations, not errors against a known reference. Two results can agree and still share the same bias. Check Analysis as well.</p>"},{"location":"comparison.html#inspect-the-maps","title":"Inspect the maps","text":"<p>Choose a camera, then select Magnitudes to see the size of the projection differences or Directions to see their orientation. Hover for values. The circular colour key is a legend, not measurement data.</p> <p>Use the wheel to zoom, drag to pan, and double-click to reset. Right-click for Reset view or Export as .png.</p> <p>Large comparisons can take time. Watch the log for progress and use Cancel if needed; cancellation may not be immediate. If a camera cannot be compared, Calib GEOM reports the problem while keeping other available results.</p>"},{"location":"detection.html","title":"Feature detection","text":"<p>Open Calibration \u2192 Detect Features to find target points in your images. Choose the target you used and enter its geometry carefully. Incorrect dimensions or spacing can produce a plausible-looking but incorrect calibration.</p>"},{"location":"detection.html#choose-your-target","title":"Choose your target","text":"Target What to check Checkerboard / Checkerboard Marker Number of internal corner features in columns and rows. ChAruCo Corner count, checker count, dictionary, and first marker ID. Kalibr Feature count, tag size, and first tag ID. Symmetric / Asymmetric Circles Number of circles in columns and rows. Caliboard CC Feature count and first target ID. AruCo Targets / AruCo Markers Marker size and dictionary. <p>For checkerboards, Feature count means internal corner points, not squares. Checker count is one greater in each direction. For circle grids, count the circles.</p> <p>Spacing is entered in millimetres:</p> <ul> <li>Checkerboards: square width.</li> <li>Symmetric circles: distance between adjacent centres.</li> <li>Asymmetric circles: diagonal spacing.</li> <li>Kalibr: tag size.</li> </ul> <p>For marker-only targets, the control is labelled Marker size. Use the dictionary specified for your ChAruCo or AruCo target.</p> <p>For multiple ChAruCo boards, enter their first marker IDs separated by commas. Their ID ranges must not overlap.</p> <p>To learn more about target designs and their trade-offs, read Calibration Patterns Explained.</p>"},{"location":"detection.html#presets-and-barcode","title":"Presets and barcode","text":"<p>Choose a Calib.io preset when it matches your target, or use Custom. New preset saves your settings for reuse. Editing a built-in preset does not change the original.</p> <p>If your target has a supported barcode, use the barcode control to read its settings from a loaded image. Confirm the settings before starting detection.</p>"},{"location":"detection.html#refinement","title":"Refinement","text":"<p>Refinement improves the feature positions after their initial detection. The available methods depend on the target:</p> Method Purpose Unbiased symmetry General-purpose corner refinement. Perspective symmetry Refinement using target geometry. Foerstner operator Gradient-based corner refinement. Edge crossing Refinement based on intersecting edges. Polynomial Refinement using a local intensity fit. Ellipse fit Circle-grid refinement. None Keeps the initial detected positions. <p>For circle grids, Perspective bias correction can improve the estimated circle centres in tilted views. AruCo Markers use unrefined marker detections.</p> <p>Neural Detection, where available, provides an alternative detector for supported targets. It requires a matching installed model and is not available in the browser.</p>"},{"location":"detection.html#inspect-the-result","title":"Inspect the result","text":"<p>Check detections in representative images, especially near the image edges, at strong tilts, and where glare or blur is present. Verify that points lie on the intended features and that target identities are correct.</p> <p>If detection is poor, first check target settings and image quality. Advanced Optional settings are available for specialist adjustments; leave them unchanged unless you have a specific reason to adjust them.</p> <p>Good detection cannot compensate for weak capture geometry. See Analysis before collecting more images.</p>"},{"location":"devices.html","title":"Camera, LiDAR, and robot inputs","text":"<p>Camera workflows are available in both editions. LiDAR and robot workflows require Calib GEOM Pro.</p> <p>Add your devices in Set Images. Each sequence must follow the same pose order: an image, point cloud, and robot record at the same position in their sequences must describe the same physical placement.</p>"},{"location":"devices.html#cameras","title":"Cameras","text":"<p>Add one camera card per image sequence. All cameras must have the same number of images, ordered consistently. Common formats including JPEG, PNG, BMP, and TIFF are supported.</p> <p>See Set Images for file patterns and browser access.</p>"},{"location":"devices.html#lidar","title":"LiDAR","text":"<p>Pro feature</p> <p>LiDAR input, target detection, and calibration require Calib GEOM Pro.</p> <p>Add a LiDAR card and select its PCD (<code>.pcd</code>) point-cloud sequence, with one cloud per camera pose.</p> <p>Supply XYZ coordinates in the LiDAR's own coordinate frame, in metres. Calib GEOM does not change the input scale. The target geometry must use a consistent physical scale.</p> <p>LiDAR detection uses the selected target geometry. Advanced optional settings can limit the cloud region used for detection or specify physical target bounds. Choose these in the point cloud's coordinate frame.</p>"},{"location":"devices.html#robot-poses","title":"Robot poses","text":"<p>Pro feature</p> <p>Robot pose input and calibration require Calib GEOM Pro.</p> <p>Add a robot card and select either:</p> <ul> <li>One CSV/TXT file containing one pose per line, or</li> <li>A sequence of CSV/TXT files containing one pose each.</li> </ul> <p>The record count and order must match the camera poses. Use numeric records without headers; commas, tabs, and spaces are accepted as separators.</p>"},{"location":"devices.html#pose-formats","title":"Pose formats","text":"Values per record Format 6 Angle-scaled axis rotation <code>rx, ry, rz</code> in radians, followed by translation <code>tx, ty, tz</code> in metres 7 Quaternion <code>w, x, y, z</code>, followed by translation <code>tx, ty, tz</code> in metres 12 A 3\u00d74 rigid transform, written row by row 16 A 4\u00d74 homogeneous transform, written row by row <p>For example:</p> <pre><code>0, 0, 1.57079632679, 0.3, 0.0, 0.5\n</code></pre> <p>Provide the gripper pose in the robot base frame. Do not invert the poses before importing. Confirm the convention used by your robot's export, particularly rotation order and translation units.</p>"},{"location":"devices.html#before-calibration","title":"Before calibration","text":"<p>Check corresponding observations across every device. Consistent pose order, units, and coordinate conventions are essential: optimization cannot correct an incorrectly paired sequence or an inconsistent scale.</p> <p>You can exclude individual observations or a whole pose before optimizing. See Refining the calibration.</p>"},{"location":"editions.html","title":"Web and Pro comparison","text":"<p>Calib GEOM has two editions with a shared calibration workflow and one user guide. Sections marked Pro feature describe capabilities available only in Calib GEOM Pro. Unmarked workflows are available in both editions unless they describe a specific platform's file access or installation.</p> <ul> <li>Calib GEOM Web runs at geom.calib.io. It is free   and requires no account or license.</li> <li>Calib GEOM Pro is the licensed desktop application. Each user needs a   purchased seat assigned to their own account.</li> </ul>"},{"location":"editions.html#feature-matrix","title":"Feature matrix","text":"Capability Web Pro Available in both editions Single-, stereo-, and multi-camera calibration \u2713 \u2713 Multiple targets and target rigs \u2713 \u2713 Standard and fisheye camera models \u2713 \u2713 Feature detection and observation exclusion \u2713 \u2713 Residual plots, coverage, and calibration comparison \u2713 \u2713 Held-out validation (Test RPE) \u2713 \u2713 Covariance, correlations, and uncertainty views \u2713 \u2713 Target-geometry optimization and inspection \u2713 \u2713 Parameter import and export \u2713 \u2713 Distortion and unprojection map exports \u2713 \u2713 HTML calibration reports \u2713 \u2713 Pooled and per-camera RMS, mean, and median \u2713 \u2713 Additional Pro features Detailed report statistics \u2014 \u2713 Detailed statistical tests and per-target/pose/feature summaries \u2014 \u2713 Statistics text export \u2014 \u2713 B-Spline Warp and B-Spline Ray models \u2014 \u2713 LiDAR and robot calibration \u2014 \u2713 Target-metrology file import \u2014 \u2713 Project save and load \u2014 \u2713 Offline Review with a supported installed model \u2014 \u2713 <p>\u2713 Available; \u2014 not available.</p> <p>Neither edition imposes a policy limit on camera or image counts. Dataset size is constrained by available memory and processing resources.</p>"},{"location":"editions.html#sessions-and-file-access","title":"Sessions and file access","text":"<p>Web sessions are not saved. Closing or reloading the page loses the loaded data and calibration results. Export parameters, maps, or reports before leaving. Parameter imports do not restore a complete project.</p> <p>Web uses browser-mediated file and folder access; you must grant permission to read your images. See Set Images.</p> <p>Pro saves projects with input-file references, detections, settings, and available results so you can resume work. Keep the original input files alongside the project. See Saving your work.</p> <p>The feature split is an edition choice, not a claim that WebAssembly cannot implement the advanced workflows. Browser permissions and resource limits are separate platform constraints.</p>"},{"location":"editions.html#review-and-licensing","title":"Review and licensing","text":"<p>Offline Review runs on supported Pro installations with an installed model and works on air-gapped devices. Cloud Review for Web is planned separately and is not currently available. When available, it will share calibration data with Calib.io's servers, where the data will be treated as confidential.</p> <p>Web does not sign in or contact the license service. Pro uses desktop licensing, including time-limited offline access; it does not require continuous connectivity.</p>"},{"location":"eula.html","title":"End User License Agreement","text":"<p>Pro feature</p> <p>This license agreement covers Calib GEOM Pro.</p> <p>This agreement applies to Calib GEOM Pro, the licensed desktop application. The WebAssembly edition at geom.calib.io does not require a license. The desktop EULA is displayed below from the Calib.io license service; an internet connection is required to load it.</p> <p>If it does not appear, open the agreement directly.</p>"},{"location":"licensing.html","title":"Desktop licensing","text":"<p>Pro feature</p> <p>Account sign-in and license seats apply only to Calib GEOM Pro. Calib GEOM Web needs neither an account nor a license.</p> <p>Calib GEOM Pro uses purchased, account-based organization licenses. Every user needs a seat assigned to their named account; seats, credentials, and sign-in sessions must not be shared. The WebAssembly edition at geom.calib.io is free to use and does not require sign-in, a license, or license-related browser storage.</p> <p>Organization owners and administrators manage members and seat assignments in the Calib.io license portal. A seat can be reassigned to another named member after it has been assigned for at least 90 days, subject to the organization's available seats and license terms.</p>"},{"location":"licensing.html#signing-in","title":"Signing in","text":"<p>Open Help \u2192 License and select Sign In. Calib GEOM opens the system browser so you can authenticate and approve the device. Return to Calib GEOM after completing the browser steps. An internet connection is required for sign-in.</p> <p>Calib GEOM refreshes the license when online and can use cached access when the service is unavailable. Refresh Access retries an online refresh. Offline Access provides a device-specific recovery flow using another internet-connected device; its code is not a reusable license key.</p>"},{"location":"licensing.html#offline-access-and-troubleshooting","title":"Offline access and troubleshooting","text":"<p>When Offline Access is offered, open it and scan the QR code or use Open in Browser on an internet-connected device. Authenticate there, then enter the displayed six-character code in Calib GEOM. Do not share that code. Offline access is device-specific and time-limited, not a permanent replacement for an assigned seat.</p> <p>Read the License dialog's current status for access and storage problems. Cached access is usable only within the granted offline validity period; there is no guarantee of indefinite operation without connectivity. Reconnect and refresh access before that period expires. If sign-in is pending, finish approval in the browser or use Cancel Sign-In before starting again.</p>"},{"location":"licensing.html#logging-out","title":"Logging out","text":"<p>Select Log Out to remove the saved sign-in and local license information from the current device.</p> <p>Permitted use and other legal terms are defined by the Calib GEOM EULA.</p>"},{"location":"mcp.html","title":"MCP control","text":"<p>Pro feature</p> <p>Model Context Protocol (MCP) control is available in Calib GEOM Pro on the desktop, not in Calib GEOM Web.</p> <p>MCP lets a compatible AI assistant control the running Calib GEOM window: load camera images, detect features, change calibration settings, optimize, inspect results, export files, and save or open projects. Automation uses the same workflows as the graphical interface.</p>"},{"location":"mcp.html#enable-and-disable","title":"Enable and disable","text":"<ol> <li>Start Calib GEOM Pro and sign in to a valid license.</li> <li>Select Help &gt; MCP Control.</li> <li>Configure your assistant as described below.</li> </ol> <p>The menu item is checked while integration is enabled. Your choice is saved and restored when Calib GEOM starts. MCP is disabled by default.</p> <p>Select Help &gt; MCP Control again to stop the server. Stopping MCP disconnects clients, but does not cancel application work that has already started. Use the application's Cancel control to stop that work.</p> <p>If startup fails, the log reports the error. The saved enabled preference is retained so the next launch can try again; disable and re-enable MCP to retry without restarting.</p>"},{"location":"mcp.html#connect-a-client","title":"Connect a client","text":"<p>Use an MCP client on the same computer that supports stdio. Configure it to launch the Calib GEOM executable with the argument <code>--mcp</code>:</p> <pre><code>&lt;path-to-calibgeom-executable&gt; --mcp\n</code></pre> <p>This starts a headless bridge, not another application window. It connects to the already-running Calib GEOM instance and handles local authentication automatically. No extra Python or Node installation, access token configuration, or connection address is needed.</p> <p>On macOS, use the executable inside the app bundle, for example <code>/Applications/Calib GEOM Pro.app/Contents/MacOS/Calib GEOM Pro</code>, not the <code>.app</code> directory itself. On Windows, use the installed <code>calibgeom.exe</code>; on Linux, use the installed <code>calibgeom</code> executable.</p>"},{"location":"mcp.html#vs-code-example","title":"VS Code example","text":"<p>Add this server to your VS Code MCP configuration, replacing <code>command</code> with the absolute path to your installed executable:</p> <pre><code>{\n  \"servers\": {\n    \"calib-geom\": {\n      \"type\": \"stdio\",\n      \"command\": \"/absolute/path/to/calibgeom\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n</code></pre>"},{"location":"mcp.html#claude-desktop-example","title":"Claude Desktop example","text":"<p>Add this entry to Claude Desktop's MCP configuration, using your installed executable path:</p> <pre><code>{\n  \"mcpServers\": {\n    \"calib-geom\": {\n      \"command\": \"/absolute/path/to/calibgeom\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n</code></pre> <p>In JSON, Windows path separators must be escaped (<code>C:\\\\...\\\\calibgeom.exe</code>), or use forward slashes.</p> <p>Keep the Calib GEOM window open with MCP enabled. If no enabled instance is running, the bridge reports an error instead of opening a new window. If multiple windows have MCP enabled, disable it in all but the window you want to control; the bridge does not choose an arbitrary project. Restart the client connection after changing the selected window or restarting Calib GEOM.</p> <p>Only enable MCP for assistants you trust: they can control the application and access files permitted to your user account. Cloud-only connectors that cannot launch a local executable are not supported by this setup.</p>"},{"location":"mcp.html#available-tools","title":"Available tools","text":"Tools Purpose <code>get_status</code>, <code>wait_for_idle</code> Inspect the operation, recent log, error count, and completion. <code>set_images</code>, <code>list_images</code>, <code>set_included</code> Set up camera sources, inspect images, and include or exclude an image or pose. <code>get_detection_settings</code>, <code>detect_features</code> Inspect presets and settings, then run detection. <code>get_optimization_settings</code>, <code>optimize</code> Inspect camera models and parameters, change settings, and calibrate. <code>get_results</code> Read solver and reprojection results, validation, reports, and optionally calibration JSON. <code>export</code> Write calibration JSON, an HTML report, statistics, or enabled target-geometry exports. <code>open_project</code>, <code>save_project</code> Open or save a calibration project. <code>cancel</code> Request cancellation of detection, optimization, project, or export work. <p>A typical sequence is:</p> <ol> <li>Open a project, or set camera image directories or file patterns.</li> <li>Read detection settings, select a preset, and run detection.</li> <li>Call <code>wait_for_idle</code>, then inspect the status and detections.</li> <li>Read optimization settings, change the required fields, and optimize.</li> <li>Call <code>wait_for_idle</code>, inspect results, then export and save a project.</li> </ol> <p>Operations start asynchronously. Starting another operation while work or a setup dialog is active fails. <code>wait_for_idle</code> defaults to 60 seconds and accepts up to 600 seconds; it can return while the application is still busy. Compare <code>errorCount</code> in <code>get_status</code> before and after an operation to detect reported failures, rather than treating an accepted start as successful completion.</p> <p>Settings patches preserve omitted fields and merge nested objects. Camera arrays take the supplied length, so provide one entry per camera; <code>{}</code> keeps that camera's settings unchanged. Detection automation does not modify saved presets.</p>"},{"location":"mcp.html#progress-confirmation-and-limitations","title":"Progress, confirmation, and limitations","text":"<p>The server supports the initialized MCP protocol through revision <code>2025-11-25</code>. The bridge relays progress notifications and confirmation requests. Clients can provide a progress token to receive detection completion and optimizer-iteration updates during <code>wait_for_idle</code>.</p> <p>Replacing an existing export or project file requires confirmation through the client's form-elicitation interface. If the client does not support that interface, choose a new destination path. Paths must be absolute paths on the computer running Calib GEOM; they are not restricted to the project folder.</p> <p>Source setup and item-inspection tools are currently camera-oriented. Existing projects can contain LiDAR data and robot poses used by the shared detection and optimization workflows, but dedicated MCP tools for adding those sources and inspecting their individual items are not yet available. Missing project files must be reconnected in the Calib GEOM window. Calibration comparison, metrology import, and diagnostic-map exports are also not exposed as MCP tools.</p> <p>MCP does not bypass licensing. Tool calls are refused while Calib GEOM is locked. Keep MCP disabled when you are not using automation, and review results in the application before relying on them.</p>"},{"location":"method.html","title":"How calibration works","text":"<p>Calib GEOM estimates how your camera maps points in the real world to positions in an image. For multi-camera setups, it also estimates the cameras' relative positions and orientations.</p> <p>You supply images of a target with known geometry. Calib GEOM detects its features, finds an initial estimate, and then adjusts the calibration to make the predicted feature positions agree with the detected positions. This final adjustment is called optimization.</p> <p>The difference between a predicted and detected position is the reprojection error, measured in pixels. A low error is useful, but it is only one part of Analysis.</p>"},{"location":"method.html#choosing-a-camera-model","title":"Choosing a camera model","text":"<p>A camera model describes the lens projection and distortion. Choose a model suited to your optics and to the software that will use the calibration.</p> Model Typical reason to choose it OpenCV Direct integration with OpenCV's standard camera model. Matlab Direct integration with MATLAB's compatible camera model. OpenCV Fisheye Fisheye calibration for use with OpenCV's fisheye tools. Double Sphere, Enhanced Unified, FOV, OCamCalib Alternative models for wide-angle or omnidirectional optics. Brown-Conrady, Thin Prism, Halcon Division Applications requiring these particular distortion models. B-Spline Warp, B-Spline Ray (Pro) Flexible modeling when simpler models leave systematic errors. <p>Start with a suitable, relatively simple model. A more flexible model may fit the calibration images better but needs more varied observations to remain reliable. Compare coverage, residual patterns, and Test RPE before adding complexity. See Optimization.</p> <p>Different models are not interchangeable, even if some parameters have the same names. If your application does not support the chosen model, consider exporting distortion maps or unprojection maps.</p>"},{"location":"method.html#what-makes-a-useful-dataset","title":"What makes a useful dataset?","text":"<ul> <li>Features cover the usable image area, including edges and corners.</li> <li>Target positions include different tilts, distances, and image locations.</li> <li>Images are sharp and well exposed, with little glare or motion blur.</li> <li>Focus, aperture, camera mounting, and target geometry remain stable.</li> </ul> <p>Repeating almost identical images adds less information than adding complementary views.</p> <p>To learn more about planning a capture, read Calibration Best Practices.</p>"},{"location":"method.html#multiple-cameras-and-targets","title":"Multiple cameras and targets","text":"<p>Calib GEOM can jointly calibrate multiple cameras and multiple targets. This is useful when one target cannot cover the full field of view or when cameras see different parts of a larger setup.</p> <p>The observations must connect the cameras and targets through shared views. Targets used together as a rig must remain fixed relative to one another throughout acquisition. ChAruCo, Kalibr, and ArUco targets support this workflow.</p>"},{"location":"method.html#understanding-uncertainty","title":"Understanding uncertainty","text":"<p>Optional uncertainty estimates show how well the observations constrain the calibration parameters and what that means for projection or triangulation. They help identify weakly supported results, but do not account for every source of error, such as an inaccurate target or movement during capture.</p> <p>Use them together with residual plots, Test RPE, and measurements representative of your application. See Analysis.</p>"},{"location":"optimization.html","title":"Optimization","text":"<p>Open Calibration \u2192 Optimize after detecting the target features. Choose a camera model, review the settings, and run optimization to estimate the calibration.</p>"},{"location":"optimization.html#choosing-a-model-and-parameters","title":"Choosing a model and parameters","text":"<p>Choose a model appropriate for your lens and downstream software. How calibration works gives an overview.</p> <p>For each parameter:</p> <ul> <li>Free lets Calib GEOM estimate its value.</li> <li>Fixed keeps a value you supply.</li> <li>Disabled leaves an optional parameter out of optimization.</li> </ul> <p>Required parameters cannot be disabled. Camera 0 is the reference camera; the positions and orientations of other cameras are estimated relative to it.</p> <p>Start with the model's default parameters. Add flexibility only when the images support it and the residual plots show a reason to do so. Default restores the selected model's starting settings. Import loads camera intrinsics from an existing parameter export; it does not convert between camera models.</p>"},{"location":"optimization.html#initialization","title":"Initialization","text":"<p>Initialization supplies a starting estimate for optimization.</p> <ul> <li>Zhang is the classical planar-target method.</li> <li>Fisheye provides a starting estimate for wide-field-of-view lenses, such   as those using the OpenCV Fisheye model.</li> <li>Vanishing Points and OCamCalib provide alternative starting estimates.</li> <li>None continues from the current values without initializing again.</li> </ul> <p>Use None when refining an existing calibration that you want to keep as the starting point. If optimization produces an implausible result, review the chosen model, initialization, target settings, and detections.</p>"},{"location":"optimization.html#starting-from-existing-parameters","title":"Starting from existing parameters","text":"<p>Import Calibration Parameters uses an existing parameter export as a starting point without replacing the current images.</p> <p>Detect features first. The imported calibration must match your device and target setup, including camera resolutions and target feature counts. Calib GEOM reports incompatible files without changing the session.</p> <p>Run optimization after importing. If the imported poses do not match the current dataset, initialization is also required.</p> <p>To import only a camera's intrinsics, use Import in the optimization dialog.</p>"},{"location":"optimization.html#b-spline-models","title":"B-Spline models","text":"<p>Pro feature</p> <p>B-Spline Warp and B-Spline Ray require Calib GEOM Pro.</p> <p>B-Spline models offer more flexibility for complex lens distortion. B-Spline Warp models image-space distortion, including near-central effects. B-Spline Ray models central-camera ray directions, including fisheye and omnidirectional lenses.</p> <p>Start with Normal. Fine offers greater flexibility but needs more well-distributed data and takes longer to optimize. Use it when simpler models leave clear, repeatable residual patterns\u2014not merely to reduce the reported error.</p>"},{"location":"optimization.html#optimize-target-geometry","title":"Optimize target geometry","text":"<p>The default Static mode keeps the target's nominal feature positions fixed. Datum Points and Best Fit allow target geometry to be adjusted with the calibration. Datum Points requires three observed, non-collinear features to define the reference geometry.</p> <p>This can help account for an imperfect target, but may also absorb other errors. Inspect the fitted target geometry and validate the calibration before accepting the change. It is not a substitute for measuring a target's physical dimensions.</p>"},{"location":"optimization.html#importing-target-metrology","title":"Importing target metrology","text":"<p>Pro feature</p> <p>Target-metrology file import requires Calib GEOM Pro. Target-geometry optimization and inspection remain available in both editions.</p> <p>After detecting features, choose Calibration \u2192 Import Target Metrology. The file uses the same JSON array of targets as the existing target-geometry export format. Targets match ascending detection target IDs, and each <code>objectPoints</code> array matches feature IDs by index. Coordinates are in metres, in the nominal target coordinate frame.</p> <p>The file must contain every detected target with the same feature counts. Coordinates must be finite, with distinct first two points and non-collinear geometry. Import replaces feature coordinates only; nominal rig transforms, target bounds, and datum settings are retained. It clears calibration results and initialization, but keeps images and detections. Run optimization again, normally with Static target geometry to retain measured coordinates.</p> <p>Pro projects preserve the imported geometry. Detecting features again restores nominal geometry, so import metrology again after re-detection. A matching feature count does not prove that the file belongs to your physical target; verify its identity, feature order, units, and measurement provenance.</p>"},{"location":"optimization.html#solver-controls","title":"Solver controls","text":"<p>The defaults are a useful starting point for most datasets.</p> Setting When it matters Max iterations / Max time Limits the length of the optimization. Reaching a limit may mean more time is needed. Function tolerance Controls when small improvements are considered sufficient to stop. Robust norm / Threshold Reduces the influence of large errors in difficult datasets. Inspect suspect observations rather than relying on this to fix them. Only decreasing steps Can be disabled to allow a wider search in difficult cases. <p>After optimization, check the reported outcome as well as the error values. A completed solve still needs a quality review.</p>"},{"location":"optimization.html#compute-test-rpe","title":"Compute Test RPE","text":"<p>Enable Compute Test RPE to assess how well the calibration predicts observations that were not used to fit it. This is particularly useful when comparing models or deciding whether additional parameters help.</p> <p>Calib GEOM repeats calibration with groups of poses held out for testing. A held-out target's pose is estimated from some of its features, and different features are used to measure the test error.</p> <p>Compare Test RPE with the normal, fitted reprojection error. A large difference is a reason to investigate model complexity, data diversity, and difficult images. Check that validation completed and covered the available poses; an unavailable result is not zero error.</p> <p>There is no universal acceptable gap or pixel threshold. Judge the result against the needs of your application. See Analysis.</p>"},{"location":"optimization.html#uncertainty-estimates","title":"Uncertainty estimates","text":"<p>Estimate covariance calculates parameter uncertainty and correlations. This can take extra time, especially with flexible models.</p> <p>Enable the following views when relevant:</p> <ul> <li>Estimate projection error shows how calibration uncertainty affects   projected image points.</li> <li>Estimate triangulation error shows its effect on 3D measurements in a   multi-camera setup. In the results view, enter representative Feature   noise and choose a Plane offset matching your working distance.   The default feature noise is zero.</li> </ul> <p>These are estimates under the calibration's assumptions, not guaranteed measurement accuracy. Use independent measurements to verify your application.</p>"},{"location":"optimization.html#refining-the-calibration","title":"Refining the calibration","text":"<p>Use image errors and source images to identify observations that need attention. You can exclude a camera image, a LiDAR observation, or a robot record without removing it from the project. Excluding a whole pose excludes its observations from every device.</p> <p>The RPE Bars threshold includes camera images at or below the selected error and excludes those above it. It does not change LiDAR or robot inclusion.</p> <p>After changing the selection, run optimization again. Existing results still describe the previous fit until you do so. Choose None for initialization to continue from the current calibration.</p> <p>Exclude images for a clear reason, such as blur, glare, or an incorrect detection\u2014not simply to lower the reported error. Check that your remaining data still covers the image and includes varied poses. See Analysis.</p>"},{"location":"overview.html","title":"Calib GEOM","text":"<p>Calib GEOM helps you calibrate cameras, inspect the quality of the result, and export a calibration for use in your application. It supports single cameras, multi-camera rigs, and setups that include LiDAR or robot measurements.</p> <p>This guide covers Calib GEOM Web, the free browser edition at geom.calib.io, and Calib GEOM Pro, the licensed desktop edition.</p> <p>Both editions use this guide. Pro feature banners mark edition-specific sections; see the Web and Pro comparison for the full feature matrix.</p>"},{"location":"overview.html#your-first-calibration","title":"Your first calibration","text":"<ol> <li>Capture your images. Keep focus and aperture fixed. Photograph the target    at different positions, distances, and tilts, including the edges and corners    of the image. See capture guidance.</li> <li>Load the images. Open File \u2192 Set Images and add a sequence for each    camera. In a multi-camera setup, corresponding images must show the same    target pose.</li> <li>Detect the target. Open Calibration \u2192 Detect Features, choose your    target, and enter its dimensions. Inspect the detected points before    continuing.</li> <li>Calibrate. Open Calibration \u2192 Optimize, choose a suitable camera    model, and run optimization.</li> <li>Review the result. Check the image errors, coverage, and residual maps.    Analysis explains what to look for.</li> <li>Export your results. Export parameters for your    application and a report to document the result.    In Pro, also save a project to continue later.</li> </ol>"},{"location":"overview.html#finding-your-way-around","title":"Finding your way around","text":"<p>Select a pose and camera in the project list to inspect an image. The scene view shows the calibrated setup in 3D. Results tabs show parameters, errors, coverage, and other results views.</p> <p>Use the log to check progress and operation outcomes. Cancel in the status bar stops an active operation. The View menu contains navigation, view-reset, and appearance controls.</p> <p>In Pro, MCP control lets a compatible AI assistant operate the running application. Enable it from Help \u2192 MCP Control; this choice is remembered across restarts.</p>"},{"location":"overview.html#desktop-and-browser","title":"Desktop and browser","text":"<p>Web is free and does not require a license or account. Grant access to your image folders to start a session. See Set Images.</p> <p>Pro provides desktop workflows, project persistence, and advanced capabilities. See the edition comparison for availability and platform differences.</p> <p>Calib GEOM remembers your layout, appearance, and recent folders. Browser preferences may be lost if you clear the site's stored data.</p>"},{"location":"overview.html#saving-your-work","title":"Saving your work","text":"<p>Web sessions are not saved. Closing or reloading the page loses the loaded data and calibration results. Export parameters, maps, or an HTML report before leaving. Browsers may warn before leaving, but this warning is not guaranteed. Web does not open or save calibration projects; parameter imports are separate.</p>"},{"location":"overview.html#projects","title":"Projects","text":"<p>Pro feature</p> <p>Project save and load require Calib GEOM Pro.</p> <p>Use the File menu to save or open a calibration project. A project includes your device setup, image references, detections, settings, and available calibration results. Save before replacing the dataset or opening another project.</p> <p>Projects reference the original images and point clouds rather than embedding them, so keep your source data with the project.</p> <p>A project is for continuing work in Calib GEOM; a parameter export is for using the calibration elsewhere.</p>"},{"location":"overview.html#reopening-a-project","title":"Reopening a project","text":"<p>If input files have moved, Calib GEOM asks you to locate them. Choose the original camera folders and check that the correct images appear.</p> <p>Opening a project restores its saved results without recalculating them. Test RPE and uncertainty are available only if they were calculated and saved. Reviews are not saved in projects.</p>"},{"location":"overview.html#desktop-licensing-and-further-reading","title":"Desktop licensing and further reading","text":"<p>Each Pro user needs a purchased license seat assigned to their own account. See Desktop licensing for sign-in and offline access.</p> <p>To learn more about targets, image capture, and camera models, explore the Calib.io knowledge base.</p>"},{"location":"parameter_exports.html","title":"Exporting calibration parameters","text":"<p>Choose Calibration \u2192 Export Parameters to save a calibration for use outside Calib GEOM. The JSON file contains camera models and parameters, the relationships between devices, and target and pose information.</p>"},{"location":"parameter_exports.html#choose-the-right-export","title":"Choose the right export","text":"You want to\u2026 Use Continue working in Calib GEOM Pro A calibration project, together with the original input files Use the calibration in your software A parameter export Document the calibration and its results A calibration report Undistort images without implementing the camera model Lens distortion maps Convert image points to viewing rays Unprojection maps <p>Project files and parameter exports serve different purposes and cannot be used interchangeably.</p> <p>Project persistence is a Pro feature. In Web, export results before closing or reloading the page; a parameter export is not a session backup.</p>"},{"location":"parameter_exports.html#using-the-parameters","title":"Using the parameters","text":"<p>Your receiving software must support the same camera model and coordinate conventions. Similar parameter names do not make different models compatible.</p> <ul> <li>For OpenCV's standard model, choose OpenCV in Calib GEOM and follow   Using Calib GEOM parameters in OpenCV.</li> <li>For MATLAB's compatible model, choose Matlab and follow   Using Calib GEOM parameters in MATLAB.</li> <li>For other models, use a compatible implementation or suitable exported maps.</li> </ul> <p>The export records both parameter values and whether they were free, fixed, or disabled during optimization. Keep the stored values when using the model; the state is not an instruction to zero a coefficient.</p>"},{"location":"parameter_exports.html#coordinates-and-units","title":"Coordinates and units","text":"<p>Image coordinates are in pixels, starting at zero in the top-left corner, with X increasing rightward and Y downward.</p> <p>Camera extrinsics describe the transform from the first camera to each other camera. Target poses describe the target rig relative to the first camera. These are different transforms; use the one your application requires.</p> <p>Rotations use angle-scaled axis vectors in radians. Translations and target coordinates use the same length unit. Calib GEOM's target-spacing input is in millimetres and is converted to metres; externally supplied geometry must use a consistent scale.</p>"},{"location":"parameter_exports.html#developer-resources","title":"Developer resources","text":"<p>libCalibGeom is Calib.io's calibration library for software integration. It is a separate product and is not included with Calib GEOM. Its documentation covers model APIs, file parsing, and integration examples.</p> <p>Calib GEOM's parameter and map exports can also be used with compatible third-party software without libCalibGeom. The requirements depend on the integration you choose.</p>"},{"location":"references.html","title":"Further reading","text":"<p>To learn more about capture design, target selection, camera models, and interpreting your results, explore the Calib.io knowledge base. These articles provide optional background; you do not need to read them to follow this guide.</p>"},{"location":"references.html#acquisition-and-targets","title":"Acquisition and targets","text":"<ul> <li>Calibration Best Practices:   planning coverage, orientation, focus, lighting, and stable capture.</li> <li>5 Biggest Calibration Mistakes:   common failures involving poses, flexibility, motion, lighting, and target size.</li> <li>Target Poses: Constraints, Rank, and Correlation:   how geometry affects identifiability and parameter coupling.</li> <li>Calibration Patterns Explained:   pattern selection and the benefits and limitations of different target types.</li> <li>Exploring Calibration Target Substrates:   target materials and physical stability.</li> </ul>"},{"location":"references.html#models-and-interpretation","title":"Models and interpretation","text":"<ul> <li>Camera Calibration Explained:   the purpose and basic components of calibration.</li> <li>Camera Models Explained:   projection, distortion, and model parameters.</li> <li>Understanding Reprojection Error:   residual definitions, statistics, and error sources.</li> <li>Understanding Parameter Uncertainty:   data support, model flexibility, and the consequences of parameter uncertainty.</li> </ul> <p>Older articles use the name Calibrator and may show a previous interface. Use this guide for current controls and workflows.</p> <p>Continue with Analysis for a workflow that connects these principles to the current diagnostics.</p>"},{"location":"results.html","title":"Results","text":"<p>Use the results tabs to understand your calibration and decide what to improve. Start with image errors and coverage, then use the other views to investigate specific concerns.</p> <p>Results describe the latest calibration run. If you change which observations are included, run optimization again to update them.</p>"},{"location":"results.html#reprojection-error","title":"Reprojection error","text":"<p>Reprojection error is the distance between a detected feature and the position predicted by the calibration, in pixels. RMS summarizes these errors, giving larger errors more weight than the mean or median.</p> <p>The usual reprojection error measures agreement with the images used for calibration. Test RPE measures held-out observations. Neither converts directly into millimetre accuracy for every application.</p> <p>See Analysis for a step-by-step review.</p>"},{"location":"results.html#scene-display","title":"Scene Display","text":"<p>Inspect the cameras, targets, and other devices in 3D. Use the context menu to show all poses or focus on a selected pose.</p> <p>Axes are red for X, green for Y, and blue for Z. Camera bodies and axis lengths are visual aids, not physical measurements.</p>"},{"location":"results.html#convergence","title":"Convergence","text":"<p>The curve shows how the optimization progressed. Hover over points for individual values.</p> <p>Check the reported outcome: convergence, a time or iteration limit, cancellation, and failure mean different things. A flat curve alone does not show that the calibration is correct.</p>"},{"location":"results.html#initialization","title":"Initialization","text":"<p>This view shows the starting estimate before optimization. Use Parameters for the final result.</p>"},{"location":"results.html#parameters","title":"Parameters","text":"<p>Inspect the final camera parameters and whether they were free or fixed. Standard deviations are shown when uncertainty estimation is available.</p> <p>Large uncertainty can indicate that the dataset does not constrain a parameter well. A fixed parameter was not estimated, so zero reported uncertainty does not mean its supplied value is physically exact.</p> <p>Use Export Parameters to use the result outside Calib GEOM.</p>"},{"location":"results.html#distortion","title":"Distortion","text":"<p>Shows how much the lens-distortion mapping moves image content. This is lens distortion, not reprojection error.</p> <p>Use Vector scale to make the arrows easier to see. Hover for displacement in pixels. Gray regions indicate unavailable or unsupported samples.</p> <p>Strong distortion is not necessarily a problem; what matters is whether the calibration describes it reliably.</p>"},{"location":"results.html#coverage","title":"Coverage","text":"<p>Shows how often the detected target covered each part of the image. Look for poorly observed edges and corners and strongly uneven coverage.</p> <p>Coverage counts target footprints, not individual features. Inspect the detections as well: a large target outline may cover areas containing few actual points. Good coverage also needs varied tilts and distances.</p>"},{"location":"results.html#map-availability","title":"Map availability","text":"<p>Maps may take time to appear, especially for large images or multi-camera setups. If a calculation was cancelled, use the offered generation control. If Retry Display appears, use it to try displaying the map again. Calib GEOM reports when a map is too large for the available resources.</p>"},{"location":"results.html#rpe-bars","title":"RPE Bars","text":"<p>Compare per-image RMS errors across cameras and poses. Hover for a value; click a bar to inspect its image.</p> <p>Drag the rejection threshold to change which images are included, then run optimization again. Investigate high errors before excluding images. See Refining the calibration.</p>"},{"location":"results.html#rpe-scatterdensity","title":"RPE Scatter/Density","text":"<p>Scatter shows the horizontal and vertical errors for individual features, centred around zero. It does not show where those features were in the image. Click a point to locate its observation.</p> <p>Density makes the shape of the error distribution easier to see. Its contours show levels relative to the peak density, not percentages of points enclosed.</p> <p>A compact, centred distribution is encouraging. Elongation, separate clusters, or an uneven shape are reasons to inspect images and residual maps.</p> <p> Figure 1: Illustrative residual distributions: skewed on the left and more nearly centred on the right.</p> <p> </p>"},{"location":"results.html#rpe-magnitudes-and-directions","title":"RPE Magnitudes and Directions","text":"<p>Magnitudes shows where feature errors are larger. Directions shows which way the errors point. Smooth, repeated patterns can reveal systematic problems that a single RMS value hides.</p> <p>Each coloured region represents a nearby detected feature; it is not a measurement at every pixel. Large regions can simply mean sparse sampling. Gray areas have no available value.</p> <p>The magnitude colour scale adapts to each camera. Use numerical values, not colour alone, when comparing cameras or calibrations. The circular colour key in the direction map is a legend, not data.</p> <p> Figure 2: Illustrative direction patterns before and after a camera-model change.</p>"},{"location":"results.html#rpe-features","title":"RPE Features","text":"<p>Shows errors on the target's feature layout. Use it to find features that repeatedly have high errors, then inspect their source images for damage, reflections, occlusion, or detection problems.</p> <p>Hover for feature statistics and click to select a feature. Error scale changes only the display.</p>"},{"location":"results.html#correlations","title":"Correlations","text":"<p>Available when covariance estimation succeeds. This view shows how strongly estimated parameters vary together.</p> <p>Strong correlation may suggest that more informative images or a simpler model would help. It is not automatically a fault: some useful model parameters naturally compensate for one another.</p> <p>Interpret correlations together with uncertainty, residuals, and Test RPE, rather than rejecting a model because of one matrix entry.</p> <p>Figure 3: Example parameter-correlation matrix.</p>"},{"location":"results.html#projection-error","title":"Projection Error","text":"<p>Enable Estimate projection error before optimization. The ellipses show estimated image-plane uncertainty from the calibration parameters.</p> <p>Hover for numerical values. Ellipse scale changes the display size only. The nominal 95% ellipses depend on the uncertainty model; they are not measured test errors or a guarantee about future images.</p>"},{"location":"results.html#triangulation-error","title":"Triangulation Error","text":"<p>For multi-camera calibrations, enable Estimate triangulation error before optimization to inspect estimated 3D uncertainty.</p> <ul> <li>Set Feature noise to a realistic image-feature uncertainty in pixels.</li> <li>Set Plane offset to a working distance relevant to your application.</li> <li>Use Ellipse scale to adjust the displayed size of the uncertainty shapes.</li> </ul> <p>Hover for numerical values. This helps compare measurement regions and camera geometry, but does not include every source of real-world measurement error.</p>"},{"location":"results.html#target-geometry","title":"Target Geometry","text":"<p>Shows differences between fitted and nominal target points when target geometry has been optimized. Select Delta X, Delta Y, or Delta Z, and hover for values.</p> <p>Deviations are exaggerated for visibility. This is a fitted result, not an independent physical measurement of the target.</p> <p>Figure 4: Illustrative target geometry with an exaggerated deviation axis.</p>"},{"location":"results.html#statistics","title":"Statistics","text":"<p>Both editions show pooled and per-camera RMS, mean, and median error summaries.</p>"},{"location":"results.html#detailed-statistics-and-export","title":"Detailed statistics and export","text":"<p>Pro feature</p> <p>Statistical tests, per-target/pose/feature summaries, and statistics text export require Calib GEOM Pro.</p> <p>The text report summarizes errors by camera, pose, and feature and includes statistical checks for unusual residual behaviour.</p> Statistic How to use it RMS, mean, median Compare overall error and the influence of outliers. Henze-Zirkler (HZ) Checks whether the horizontal and vertical residuals resemble a normal distribution. Distance correlation (dCor) Looks for a relationship between residuals and image or target position. p-value Indicates evidence against the assumption being tested; it is not the probability that a calibration is wrong. <p>Use these checks to guide investigation, not as automatic pass/fail rules. Large datasets can make small departures statistically significant. Inspect the size and pattern of the errors and their relevance to your task. In multi-target datasets, the text's feature-ID summaries can combine equal feature IDs from different targets; use RPE Features to inspect a particular target.</p> <p>Use the tab's export control to save the statistics.</p>"},{"location":"results.html#navigation-and-exporting-views","title":"Navigation and exporting views","text":"<p>In 2D views, use the wheel to zoom, right-drag to pan, and double-click to reset. In 3D, left-drag rotates, right- or middle-drag pans, and the wheel changes distance. Supported trackpads also offer pan and pinch gestures.</p> <p>Where available, right-click for Reset view or Export as .png. For a complete record, export a calibration report and retain the source data. In Pro, also keep the project.</p>"},{"location":"set_images.html","title":"Set Images","text":"<p>Open File \u2192 Set Images to load a calibration dataset. Add a camera card for each camera and choose its image folder or enter a file pattern.</p> <p>For example:</p> <pre><code>camera-left/*.png\ncamera-right/*.png\n</code></pre> <p>Use <code>*</code> to match filenames. Supported image formats include JPEG, PNG, BMP, TIFF, PPM, PGM, PBM, EXR, WebP, and PAM.</p>"},{"location":"set_images.html#match-the-same-poses","title":"Match the same poses","text":"<p>Every camera must have the same number of images in the same pose order. The first image from each camera forms one pose, the second forms the next, and so on.</p> <p>Check that corresponding images show the same target placement before continuing. A matching image count alone is not enough.</p> <p>Pro feature</p> <p>LiDAR and robot cards require Calib GEOM Pro. Their sequences must follow the same pose order; see Camera, LiDAR, and robot inputs.</p>"},{"location":"set_images.html#browser-folder-access-calib-geom-web","title":"Browser folder access (Calib GEOM Web)","text":"<p>In the browser, use each camera's folder button to choose its image folder. The folder name appears in front of the path, which is relative to that folder: <code>*</code> selects every image directly inside it, and <code>*.png</code> or <code>left_*</code> narrow the selection.</p> <p>Web sessions cannot be saved or reopened; closing or reloading the page loses the loaded data and calibration results. Export the results you need first.</p> <p>Calib GEOM reports missing or ambiguous files. If filenames repeat in different pose folders, select the requested folder to identify the right sequence.</p>"},{"location":"using_distortion_maps.html","title":"Using lens distortion maps","text":"<p>Lens distortion maps let you create undistorted images without implementing the selected camera model in your own software.</p>"},{"location":"using_distortion_maps.html#exporting-maps","title":"Exporting maps","text":"<ol> <li>Complete and review the calibration.</li> <li>Choose Calibration \u2192 Export Lens Distortion Maps.</li> <li>Choose a destination and wait for export to finish.</li> </ol> <p>For each camera, Calib GEOM writes:</p> File Contents <code>camera_N_mapU.tiff</code> Horizontal source-image coordinates <code>camera_N_mapV.tiff</code> Vertical source-image coordinates <code>camera_N_K.json</code> Camera matrix for the undistorted output <p>Keep all three files together. If you cancel an export, check that every required file was written before using it.</p>"},{"location":"using_distortion_maps.html#using-the-maps","title":"Using the maps","text":"<p>The maps tell a remapping function where to sample the original image for each output pixel. They contain absolute pixel coordinates, not offsets. The exported camera matrix describes the undistorted output image.</p> <p>The libCalibGeom documentation includes map integration examples, including a Python example. libCalibGeom is a separate product and is not included with Calib GEOM. These map examples use OpenCV to read Calib GEOM's exports and do not require the libCalibGeom library at runtime.</p> <p>The C++ example runs as:</p> <pre><code>distortion_maps exports/camera_0 image.png --output=undistorted.png\n</code></pre> <pre><code>python distortion_maps.py exports/camera_0 image.png\n</code></pre> <p>Use the filename prefix, such as <code>exports/camera_0</code>, rather than the path to an individual map. The Python example writes <code>image_undistorted.png</code>. Your OpenCV installation must support float32 TIFF with Zstandard compression.</p>"},{"location":"using_distortion_maps.html#check-the-usable-image-area","title":"Check the usable image area","text":"<p>Pixels without a valid source location cannot supply image content. The examples display these areas as black; this does not mean the original scene was black there.</p> <p>A pinhole output cannot preserve the entire field of view of every fisheye or omnidirectional camera. Check the useful output area for your lens. For non-central cameras, image remapping is not a replacement for full ray geometry at arbitrary depths; use unprojection maps when ray origins matter.</p>"},{"location":"using_parameters_in_matlab.html","title":"Using Calib GEOM parameters in MATLAB","text":"<p>Choose the Matlab camera model in Calib GEOM, complete the calibration, and select Calibration \u2192 Export Parameters.</p> <p>The libCalibGeom documentation includes integration examples, including the MATLAB <code>readCalibParameters</code> helper. Place the helper on your MATLAB path and call:</p> <pre><code>[intrinsics, extrinsics] = readCalibParameters('calibration.json');\n</code></pre> <p>The helper returns one intrinsics and extrinsics structure per camera. It handles the image-coordinate conversion for MATLAB.</p> <p>libCalibGeom is a separate product and is not included with Calib GEOM. The MATLAB helper reads Calib GEOM's JSON export directly and does not require the libCalibGeom library at runtime.</p>"},{"location":"using_parameters_in_matlab.html#compatibility","title":"Compatibility","text":"<p>The helper requires Calib GEOM's Matlab model for every camera. Other models are not interchangeable, even if their parameter names are similar.</p> <p>Use the parameter export, not a Calib GEOM project file. For unsupported models, consider distortion maps or unprojection maps.</p>"},{"location":"using_parameters_in_matlab.html#integration-reference","title":"Integration reference","text":"<ul> <li><code>ImageSize</code> is <code>[height width]</code>.</li> <li>Principal-point coordinates are converted to MATLAB's one-based convention.</li> <li><code>IntrinsicMatrix</code> uses the traditional transposed layout, including skew.</li> <li>Rotation and translation are returned as <code>3\u00d71</code> column vectors.</li> <li>All stored parameter values are preserved, including fixed and disabled   values.</li> </ul> <p>The rotation is an angle-scaled axis vector in radians. The extrinsics map from the first camera to the selected camera, not from a target pose to the camera. Check the rotation representation and transform direction expected by the MATLAB function you use.</p> <p>If your MATLAB workflow does not support nonzero skew, do not discard it: use a compatible workflow or recalibrate with the appropriate constraint. See Exporting calibration parameters for units and coordinate conventions.</p>"},{"location":"using_parameters_in_opencv.html","title":"Using Calib GEOM parameters in OpenCV","text":"<p>Choose the OpenCV camera model in Calib GEOM, complete the calibration, and select Calibration \u2192 Export Parameters.</p> <p>The libCalibGeom documentation provides integration examples for reading the export and obtaining camera matrices, distortion coefficients, and camera extrinsics.</p> <p>libCalibGeom is a separate product and is not included with Calib GEOM. The C++ parameter-reader example requires libCalibGeom; the Python example uses OpenCV and NumPy without requiring libCalibGeom.</p> <p>The C++ example runs as:</p> <pre><code>opencv_parameters calibration.json\n</code></pre> <p>The Python example undistorts an image:</p> <pre><code>python opencv_parameters.py calibration.json image.png\n</code></pre> <p>See the libCalibGeom documentation for example setup and build instructions.</p>"},{"location":"using_parameters_in_opencv.html#compatibility","title":"Compatibility","text":"<p>Direct conversion applies to Calib GEOM's OpenCV model. OpenCV Fisheye and other Calib GEOM models use different projection functions and must not be used with OpenCV's standard distortion functions by copying coefficients.</p> <p>For models your application does not support, consider distortion maps or unprojection maps.</p>"},{"location":"using_parameters_in_opencv.html#integration-reference","title":"Integration reference","text":"<p>The focal lengths are <code>fx = f</code> and <code>fy = f \u00d7 ar</code>. The principal point is <code>(cx, cy)</code>. All four are in pixels and use OpenCV's zero-based image coordinates.</p> <p>The full distortion vector uses this order:</p> <pre><code>[k1, k2, p1, p2, k3, k4, k5, k6, s1, s2, s3, s4, tauX, tauY]\n</code></pre> <p>Check that the OpenCV function you use supports the required terms. The supplied readers preserve all stored values, including fixed and disabled parameters.</p> <p>Camera extrinsics map from the first camera to the selected camera. They are not the target pose in each image. Check transform direction when using stereo or projection functions. See Exporting calibration parameters for units and coordinate conventions.</p>"},{"location":"using_unprojection_maps.html","title":"Using unprojection maps","text":"<p>Unprojection maps convert a point in the original camera image into a viewing ray. Use them for tasks such as custom 3D reconstruction when your software does not implement Calib GEOM's camera model.</p> <p>They do not undistort the image. To create an undistorted image, use lens distortion maps.</p>"},{"location":"using_unprojection_maps.html#exporting-maps","title":"Exporting maps","text":"<p>Choose Calibration \u2192 Export Unprojection Maps after completing the calibration. Keep the complete set of files for each camera.</p> Export type Files per camera Central cameras <code>camera_N_mapX.tiff</code>, <code>camera_N_mapY.tiff</code>, <code>camera_N_mapZ.tiff</code>: the ray direction A setup containing any non-central camera <code>camera_N_mapOx.tiff</code>, <code>camera_N_mapOy.tiff</code>, <code>camera_N_mapOz.tiff</code>: the origin; <code>camera_N_mapDx.tiff</code>, <code>camera_N_mapDy.tiff</code>, <code>camera_N_mapDz.tiff</code>: the direction <p>When any camera is non-central, all cameras in that export use the six-file format. Origins are in metres in the camera's coordinate frame.</p>"},{"location":"using_unprojection_maps.html#using-the-maps","title":"Using the maps","text":"<p>The libCalibGeom documentation includes a C++ example that reads a ray at a chosen image position. libCalibGeom is a separate product and is not included with Calib GEOM. This map example uses OpenCV and does not require the libCalibGeom library at runtime.</p> <p>Run the example as:</p> <pre><code>unprojection_maps exports/camera_0 xyz 200.23 103.356\n</code></pre> <p>Use <code>xyz</code> for a three-file direction export. For the six-file format, use:</p> <pre><code>unprojection_maps exports/camera_0 rays 200.23 103.356\n</code></pre> <p>The example prints the ray origin and direction. Coordinates are zero-based: the first value is horizontal and the second is vertical. Your OpenCV installation must support float32 TIFF with Zstandard compression.</p>"},{"location":"using_unprojection_maps.html#integration-notes","title":"Integration notes","text":"<ul> <li>Rays are expressed in each camera's own frame. Transform them to a common   frame before combining measurements from different cameras.</li> <li>Keep the ray origin for a non-central camera; its rays do not all start at   one camera centre.</li> <li>At subpixel positions, interpolate the map components and normalize the   resulting direction.</li> <li>Reject invalid samples and points outside the map instead of treating them   as zero-length rays.</li> </ul> <p>See Exporting calibration parameters for camera transform conventions.</p>"}]}