.\" -*- 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\-rotate\-corners \- Adjust mrgingham corner detections from rotated cameras .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 10 \& # camera A is rightside\-up \& # camera B is mounted sideways \& # cameras C,D are upside\-down \& mrgingham \-\-gridn N \e \& \*(Aqframe*\-cameraA.jpg\*(Aq \e \& \*(Aqframe*\-cameraB.jpg\*(Aq \e \& \*(Aqframe*\-cameraC.jpg\*(Aq \e \& \*(Aqframe*\-cameraD.jpg\*(Aq | \e \& mrgingham\-rotate\-corners \-\-gridn N \e \& \-\-90 cameraB \-\-180 \*(Aqcamera[CD]\*(Aq .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" The mrgingham chessboard detector finds a chessboard in an image, but it has no way to know whether the detected chessboard was upside-down or otherwise rotated: the chessboard itself has no detectable marking to make this clear. In the usual case, the cameras as all mounted in the same orientation, so they all detect the same orientation of the chessboard, and there is no problem. However, if some cameras are mounted sideways or upside-down, the sequence of corners will correspond to different corners between the cameras with different orientations. This can be addressed by this tool. This tool ingests mrgingham detections, and outputs them after correcting the chessboard observations produced by rotated cameras. .PP Each rotation option is an awk regular expression used to select images from specific cameras. The regular expression is tested against the image filenames. Each rotation option may be given multiple times. Any files not matched by any rotation option are passed through unrotated. .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)