.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "MRGINGHAM 1" .TH MRGINGHAM 1 2024-03-24 "mrgingham 1.24" "mrgingham: chessboard corner finder" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME mrgingham\-observe\-pixel\-uncertainty \- Evaluate observed point distribution from stationary observations .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 3 \& $ observe\-pixel\-uncertainty \*(Aq*.png\*(Aq \& Evaluated 49 observations \& mean 1\-sigma for independent x,y: 0.26 \& \& $ mrcal\-calibrate\-cameras \-\-observed\-pixel\-uncertainty 0.26 ..... \& [ mrcal computes a camera calibration ] .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" mrgingham has finite precision, so repeated observations of the same board will produce slightly different corner coordinates. This tool takes in a set of images (assumed observing a chessboard, with both the camera and board stationary). It then outputs the 1\-standard\-deviation statistic for the distribution of detected corners. This can then be passed in to mrcal: \&'mrcal\-calibrate\-cameras \-\-observed\-pixel\-uncertainty ...' .PP The distribution of the detected corners is assumed to be gaussian, and INDEPENDENT in the horizontal and vertical directions. If the x and y distributions are each s, then the LENGTH of the deviation of each pixel is a Rayleigh distribution with expected value s*sqrt(pi/2) ~ s*1.25 .PP THIS TOOL PERFORMS VERY LIGHT OUTLIER REJECTION; IT IS ASSUMED THAT THE SCENE IS STATIONARY .SH OPTIONS .IX Header "OPTIONS" .SS "POSITIONAL ARGUMENTS" .IX Subsection "POSITIONAL ARGUMENTS" .Vb 8 \& input Either 1: A glob that matches images observing a \& stationary calibration target. This must be a GLOB. So \& in the shell pass in \*(Aq*.png\*(Aq and NOT *.png. These are \& processed by \*(Aqmrgingham\*(Aq and the arguments passed in \& with \-\-mrgingham. Or 2: a vnlog representing corner \& detections from these images. This is assumed to be a \& file with a filename ending in .vnl, formatted like \& \*(Aqmrgingham\*(Aq output: 3 columns: filename,x,y .Ve .SS "OPTIONAL ARGUMENTS" .IX Subsection "OPTIONAL ARGUMENTS" .Vb 10 \& \-h, \-\-help show this help message and exit \& \-\-show {geometry,histograms} \& Visualize something. Arguments can be: "geometry": \& show the 1\-stdev ellipses of the distribution for each \& chessboard corner separately. "histograms": show the \& distribution of all the x\- and y\-deviations off the \& mean \& \-\-mrgingham MRGINGHAM \& If we\*(Aqre processing images, these are the arguments \& given to mrgingham. If we are reading a pre\-computed \& file, this does nothing \& \-\-num\-corners NUM_CORNERS \& How many corners to expect in each image. If this is \& wrong I will throw an error. Defaults to 100 \& \-\-imagersize IMAGERSIZE IMAGERSIZE \& Optional imager dimensions: width and height. This is \& optional. If given, we use it to size the "\-\-show \& geometry" plot .Ve .SH REPOSITORY .IX Header "REPOSITORY" .SH AUTHOR .IX Header "AUTHOR" Dima Kogan, \f(CW\*(C`\*(C'\fR .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. .PP Copyright 2017\-2018 California Institute of Technology .PP Copyright 2017\-2018 Dima Kogan (\f(CW\*(C`dima@secretsauce.net\*(C'\fR)