Provided by: mrcal_2.1-5build1_amd64 bug

NAME

       mrcal-cull-corners - Filters a corners.vnl on stdin to cut out some points

SYNOPSIS

         $ < corners.vnl mrcal-cull-corners --cull-left-of 1000 > corners.culled.vnl

DESCRIPTION

       This tool reads a set of corner detections on stdin, throws some of them out, and writes
       the result to stdout. This is useful for testing and evaluating the performance of the
       mrcal calibration tools.

       The specific operation of this tool is defined on which --cull-... option is given.
       Exactly one is required:

         --cull-left-of X: throw away all corner observations to the left of the given
           X coordinate

         --cull-rad-off-center D: throw away all corner observations further than D
           away from the imager center. --imagersize must be given also so that we know
           where the imager center is

         --cull-random-observations-ratio R: throws away a ratio R object observations
           at random. To throw out half of all object observations, pass R = 0.5.
           --object-width-n and --object-height-n are then required to make the parsing
           work

       --cull-left-of X and --cull-rad-off-center throw out individual points. This is
         done by keeping the point in the output data strem, but setting its decimation
         level to '-'. The downstream tools then know to ignore those points

       --cull-random-observations-ratio throws out whole object observations, not just
         individual points. These removed observations do not appear in the output data
         stream at all

       This tool exists primarily for testing, and probably you don't want to use it.  The
       filtering is crude, and the tool might report chessboard observations with very few
       remaining points. You PROBABLY want to post-process the output to keep only observations
       with enough points. For instance:

         mrcal-cull-corners ... > culled-raw.vnl

         vnl-join --vnl-sort - -j filename culled-raw.vnl \
            <(< culled-raw.vnl vnl-filter -p filename --has level |
                               vnl-uniq -c |
                               vnl-filter 'count > 20' -p filename ) \
         > culled.vnl

       options:
         -h, --help            show this help message and exit
         --object-width-n OBJECT_WIDTH_N
                               How many points the calibration board has per
                               horizontal side. This is required if --cull-random-
                               observation-ratio
         --object-height-n OBJECT_HEIGHT_N
                               How many points the calibration board has per vertical
                               side. If omitted, I assume a square object and use the
                               same value as --object-width-n
         --imagersize IMAGERSIZE IMAGERSIZE
                               Size of the imager. This is required if --cull-rad-
                               off-center
         --cull-left-of CULL_LEFT_OF
                               Throw out all observations with x < the given value.
                               Exclusive with the other --cull-... options
         --cull-rad-off-center CULL_RAD_OFF_CENTER
                               Throw out all observations with dist_from_center > the
                               given value. Exclusive with the other --cull-...
                               options
         --cull-random-observations-ratio CULL_RANDOM_OBSERVATIONS_RATIO
                               Throw out a random number of board observations. The
                               ratio of observations is given as the argument. 1.0 =
                               throw out ALL the observations; 0.0 = throw out NONE
                               of the observations. Exclusive with the other
                               --cull-... options

REPOSITORY

       <https://www.github.com/dkogan/mrcal>

AUTHOR

       Dima Kogan, "<dima@secretsauce.net>"

LICENSE AND COPYRIGHT

       Copyright (c) 2017-2021 California Institute of Technology ("Caltech"). U.S.  Government
       sponsorship acknowledged. All rights reserved.

       Licensed under the Apache License, Version 2.0 (the "License"); You may obtain a copy of
       the License at

           http://www.apache.org/licenses/LICENSE-2.0