Provided by: ssocr_2.23.1-1build2_amd64 bug

NAME

       ssocr - optical recognition of seven segment displays

SYNOPSIS

       ssocr [OPTION]... [COMMAND]... IMAGE

DESCRIPTION

       ssocr  reads  an  image  file containing the picture of a seven segment display, recognizes the displayed
       digits and prints them to standard output.  All image formats known by imlib2 are supported.   Use  -  as
       file name to read the image from standard input.  ssocr provides several image manipulation algorithms to
       enhance noisy images.

       Options  can be used to change ssocr behavior.  Commands can be used to manipulate the input IMAGE before
       starting the recognition algorithm.  Two hyphens (--) can be used as a special argument  to  end  option-
       scanning, e.g., in order to use a negative number as argument to a command.

OPTIONS

   -h, --help
       Write a help message to standard output.  The default settings are shown as well.

   -V, --version
       Write version information to standard output.

   -v, --verbose
       Print information about program execution to standard error.

   -t, --threshold THRESHOLD
       Specify  a  percentage  value  as  luminance  threshold  to  differentiate  between black and white. This
       threshold is adjusted to the luminance values occurring in the image, unless option  --absolute-threshold
       is used. The default threshold is 50.

   -a, --absolute-threshold
       Do  not  adjust  the threshold to the luminance values occurring in the image.  Consider this option when
       using the dynamic_threshold command.

   -T, --iter-threshold
       Use an iterative method (one-dimensional k-means clustering) to determine  the  threshold.  The  starting
       value can be specified with the --threshold option.

   -n, --number-pixels NUMBER
       Set  the  number  of  foreground pixels that have to be found in a scanline to recognize a segment.  This
       does not apply to ratio based recognition.  Can be used to ignore some noise in the picture.  See the web
       page of ssocr(1) for a description of the algorithm.

   -N, --min-segment SIZE
       Set the minimum number of pixels required for width and height  of  an  individual  segment  of  a  seven
       segment display.  A set segment in the display must have both a width and height of at least SIZE pixels.
       This  minimum  is used for both scanline based and ratio based recognition.  It is not applied to decimal
       separator detection, because those are not comprised of regular segments.  This option  can  be  used  to
       ignore some noise in the picture.  See the web page of ssocr(1) for a description of the algorithm.

   -i, --ignore-pixels NUMBER
       Set  the  number  of foreground pixels that are ignored when deciding if a column or row consists only of
       background or foreground pixels.  Can be used to ignore some noise in the picture.  See the web  page  of
       ssocr(1) for a description of the algorithm.

   -M, --min-char-dims WIDTHxHEIGHT
       Specify  the  minimum  dimensions  of  characters  respectively digits.  When the segmentation step finds
       potential digits, those with a width less than WIDTH or a height less than HEIGHT are  ignored.   Can  be
       used  to  ignore  some  noise  in  the  picture.   See  the web page of ssocr(1) for a description of the
       algorithm.

   -d, --number-digits RANGE
       Specifies the number of digits shown in the image. Default value is 6.  Use -1  to  automatically  detect
       the  number  of  digits.   Use  a  single  positive number to specify an exact number of digits.  Use two
       positive numbers separated with a hyphen (-) to specify an inclusive range of acceptable values  for  the
       number of digits.

   -r, --one-ratio RATIO
       Set  the  height/width  ratio threshold to recognize a digit as a one.  A digit with a height/width ratio
       greater than RATIO is recognized as a one.  RATIO takes integers only.  See the web page of ssocr(1)  for
       a description of the algorithm.

   -m, --minus-ratio RATIO
       Set  the width/height ratio to recognize a minus sign.  A digit with a width/height ratio greater than or
       equal to RATIO is recognized as a minus sign.  RATIO takes integers only.  This uses  the  same  idea  as
       recognizing the digit one.

   -H, --dec-h-ratio RATIO
       Set  the max_digit_height/height ratio used for recognition of a decimal separator.  RATIO takes integers
       only.  This value is used in combination with the max_digit_width/width ratio.  If the height of a  digit
       is  less than 1/RATIO of the maximum digit height in the image and the max_digit_width/width threshold is
       also reached, it is recognized as a decimal separator.

   -W, --dec-w-ratio RATIO
       Set the max_digit_width/width ratio used for recognition of a decimal separator.   RATIO  takes  integers
       only.  This value is used in combination with the max_digit_height/height ratio.  If the width of a digit
       is less than 1/RATIO of the maximum digit width in the image and the max_digit_height/height threshold is
       also reached, it is recognized as a decimal separator.

   -o, --output-image FILE
       Write  the  processed  image  to FILE.  Use - to write to standard output.  Unless this option is used no
       image is written to disk.  If a standard filename extension is used it is interpreted as the image format
       to use.  Can be useful together with the --process-only option.

   -O, --output-format FORMAT
       Specify the image format to use with --output-image.  This format must be recognized by imlib2.  Standard
       filename extensions are used to describe the format.  Overwrites  the  image  file  format  automatically
       determined via the filename.  If no format is specified via this option or the filename, png is used.

   -p, --process-only
       Use  ssocr(1)  as  an  image  manipulation  program.   No image recognition is performed.  Should be used
       together with the -B --output-image option.

   -D, --debug-image[=FILE]
       Write a debug image showing the results of thresholding, segmentation and character recognition to  disk.
       The  image  is  written to the file testbild.png unless a filename FILE is given.  This debug image often
       helps in understanding why ssocr(1) does not recognize the number from a given image.

   -P, --debug-output
       Print information helpful for debugging to standard error.

   -f, --foreground COLOR
       Specify the foreground color (either black or white).  This automatically sets the  background  color  as
       well.  Default is black.

   -b, --background COLOR
       Specify  the  background  color (either black or white).  This automatically sets the foreground color as
       well.  Default is white.

   -I, --print-info
       Prints image dimensions and range of used luminance values to standard error.

   -g, --adjust-gray
       Interpret the values T1 and T2 given to the command  gray_stretch  as  percentages  instead  of  absolute
       luminance values.

   -l, --luminance KEYWORD
       Choose  the type of luminace computation.  Using help as KEYWORD prints the list of implemented luminance
       keywords with a short description of the used formula.  The default of Rec709 should work  well  in  most
       cases.

   -s, --print-spaces
       Print space characters between digits (characters) that are farther apart than a factor times the minimum
       (default) or average distance between digits (characters).

   -A, --space-factor FACTOR
       Use the given FACTOR instead of the default value to determine white space between digits (characters).

   -G, --space-average
       Use  the  average distance between digits (characters) instead of the minimum distance to determine white
       space between digits.

   -S, --ascii-art-segments
       Prints the recognized segments, i.e. the display as seen by ssocr, as ASCII art to standard error.

   -X, --print-as-hex
       Prints the recognized segments as a string of hexadecimal numbers separated by a colon instead of  digits
       and  characters.   Each  number  comprises  two hexadecimal digits (one byte).  0x01 represents the upper
       horizontal segment, 0x02 represents the upper left vertical segment,  0x04  represents  the  upper  right
       vertical  segment, 0x08 represents the middle horizontal segment, 0x10 represents the lower left vertical
       segment, 0x20 represents the lower right vertical segment, 0x40 represents the lower horizontal  segment,
       0x80  represents  a  decimal point (or comma or thousands separator).  Each hexadecimal number printed is
       the logical or of the set segments.

   -C, --omit-decimal-point
       Omit decimal points from output.  Decimal points are still recognized and counted against the  number  of
       digits.   This  can be used together with automatically detecting the number of digits to ignore isolated
       groups of pixels in an image.

   -c, --charset KEYWORD
       Select the set of characters that ssocr shall recognize.  This affects, e.g., if a display showing a  six
       with  missing  top segment is recognized as 6 (with digits and decimal) or b (with hexadecimal and full).
       Using help as KEYWORD prints the list of implemented character set keywords with a short  description  of
       the included characters.  The default is full (recognizing all characters known to ssocr in the image).

COMMANDS

       Most commands do not change the image dimensions.  The crop command is a notable exception to this rule.

   dilation [N]
       Filter  image  using  dilation  algorithm.  Any pixel with at least one neighbour pixel set in the source
       image will be set in the filtered image.  If a number N > 1  is  specified,  the  dilation  algorithm  is
       executed N times.

   erosion [N]
       Filter  image using erosion algorithm.  Any pixel with every neighbour pixel set in the source image will
       be set in the filtered image.  If a number N > 1 is specified, the erosion algorithm is executed N times.

   closing [N]
       Filter image using closing algorithm, i.e. erosion and then dilation.  If a number N > 1 is specified,  N
       times dilation and then N times erosion is executed.

   opening [N]
       Filter  image using opening algorithm, i.e. dilation and then erosion.  If a number N > 1 is specified, N
       times dilation and then N times erosion is executed.

   remove_isolated
       Remove any foreground pixels without neighbouring foreground pixels.

   make_mono
       Convert the image to  monochrome  using  thresholding.   The  threshold  can  be  specified  with  option
       --threshold   and   is   adjusted   to   the   used   luminance  interval  of  the  image  unless  option
       --absolute-threshold is used.

   grayscale
       Transform image to gray values using luminance.  The formula to compute luminance can be specified  using
       option --luminance.

   invert
       Set every foreground pixel to background color and vice versa.

   gray_stretch T1 T2
       Transform  image  so that the luminance interval [ T1,T2 ] is projected to [ 0,255 ] with any value below
       T1 set to 0 and any value above T2 set to 255.  Together with the option --adjust-gray, the values T1 and
       T2 are interpreted as percentages.

   dynamic_threshold W H
       Convert the image to monochrome using dynamic thresholding a.k.a local adaptive thresholding.   A  window
       of  width  W  and  height H around the current pixel is used to determine the (local) thresholding value.
       Consider using the  --absolute-threshold  option  together  with  a  manually  adjusted  --threshold  for
       predictable results.

   rgb_threshold
       Convert  the  image to monochrome using simple thresholding for every color channel.  This is the same as
       --luminance=minimum make_mono.  You should use --luminance=minimum  and  make_mono  or  dynamic_threshold
       instead.

   r_threshold
       Convert  the image to monochrome using simple thresholding.  Only the red color channel is used.  This is
       the same as --luminance=red make_mono.  You should use --luminance red and make_mono or dynamic_threshold
       instead.

   g_threshold
       Convert the image to monochrome using simple thresholding.  Only the green color channel is  used.   This
       is  the  same  as  --luminance=green  make_mono.   You  should  use  --luminance  green  and make_mono or
       dynamic_threshold instead.

   b_threshold
       Convert the image to monochrome using simple thresholding.  Only the blue color channel is used.  This is
       the  same  as  --luminance=blue  make_mono.   You  should  use  --luminance   blue   and   make_mono   or
       dynamic_threshold instead.

   white_border [WIDTH]
       The border of the image is set to the foreground color.  This border is one pixel wide unless a WIDTH > 1
       is specified.

   shear OFFSET
       Shear  the  image OFFSET pixels to the right.  The OFFSET is used at the bottom.  Image dimensions do not
       change, pixels in background color are used for pixels that are outside the  image  and  shifted  inside.
       Pixels  shifted  out  of  the image are dropped.  Many seven segment displays use slightly skewed digits,
       this command can be used to compensate this.  Sometimes ssocr(1) cannot separate a decimal point from the
       preceding digit without shearing the image.

   rotate THETA
       Rotate the image THETA degrees clockwise around the center of the image.  Image dimensions do not change,
       pixels rotated out of the image area are dropped, pixels from outside the  image  rotated  into  the  new
       image are set to the background color.

   mirror { horiz | vert }
       Mirror the image horizontally or vertically.

   crop X Y W H
       Use  only  the subpicture with upper left corner ( X,Y ), width W and height H.  This command changes the
       image dimensions.

   set_pixels_filter MASK
       Set every pixel in the filtered image that has at least MASK neighbour pixels set in the source image.

   keep_pixels_filter MASK
       Keep only those foreground pixels in the filtered image that have at least MASK neighbour pixels  set  in
       the source image (not counting the checked pixel itself).

LUMINANCE KEYWORDS

       •      rec601

       •      rec709

       •      linear

       •      minimum

       •      maximum

       •      red

       •      green

       •      blue

CHARACTER SET KEYWORDS

       •      full

       •      digits

       •      decimal

       •      hex

       •      tt_robot

EXIT STATUS

       •      0, if the correct number of digits have been recognized

       •      1, if an incorrect number of digits have been found

       •      2, if not all digits have been recognized

       •      3, if only image processing was requested and successful

       •      42, if help or version info was requested

       •      99, if some other error occurred

ENVIRONMENT

       TMP can be used to specify a different directory for temporary files than /tmp.

BUGS

       Imlib2 (and therefore ssocr(1)) does not work well with Netpbm(1) images.

AUTHOR

       ssocr was written by Erik Auerswald <auerswal@unix-ag.uni-kl.de>.

COPYRIGHT

       Copyright   ©   2004-2023   Erik   Auerswald.    License   GPLv3+:   GNU   GPL   version   3   or   later
       https://gnu.org/licenses/gpl.html.
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to  the  extent
       permitted by law.

SEE ALSO

       netpbm(1), ImageMagick(1),

       https://www.unix-ag.uni-kl.de/~auerswal/ssocr/

2.23.1                                             2023-05-18                                           ssocr(1)