Provided by: ssocr_2.22.1-1_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

   -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.  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 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.

   -d, --number-digits NUMBER
       Specifies  the  number  of digits shown in the image. Default value is 6.  Use -1 to automatically detect
       the number of digits.

   -r, --one-ratio RATIO
       Set the height/width ratio threshold to recognize a digit 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.  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.  This value is used in
       combination with the max_digit_width/width ratio.

   -W, --dec-w-ratio RATIO
       Set the max_digit_width/width ratio used for recognition of a decimal separator.  This value is  used  in
       combination with the max_digit_height/height ratio.

   -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
       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

   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.

   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-2022   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.22.1                                             2022-01-29                                           ssocr(1)