dwww Home | Manual pages | Find package

Pamtilt User Manual(1)      General Commands Manual      Pamtilt User Manual(1)

NAME
       pamtilt - print the tilt angle of a PGM file

SYNOPSIS
       pamtilt  [-angle=maxangle]  [-fast]  [-quality=q]  [-hstep=n] [-vstep=n]
       [-dstep=n] [-astep=n] [-verbose] [pgmfile]

EXAMPLES
           scanimage --mode Gray --resolution 300 >crooked.pgm
           pnmrotate -b white `pamtilt crooked.pgm` crooked.pgm >straight.pgm
           (then crop, threshold, etc.)

DESCRIPTION
       This program is part of Netpbm(1).

       pamtilt tries to find the correct angle  for  untilting  (de-skewing)  a
       scanned  text  document.   The  output is a single floating-point number
       (the angle in degrees) for use as the argument to pnmrotate.

       "Document skew" is the name given to what happens when you feed  a  page
       into  an  image  scanner  at  an  angle:  the resulting image is tilted.
       pamtilt aims to help correct that.

       pamtilt makes three iterations at successively finer increments, testing
       prospective rotation angles to find the best one.   pamtilt  works  best
       for  straightening  images  with strong horizontal lines and does poorly
       with arbitrary photos.  If pamtilt has no confidence in its results,  it
       prints  the  special value 00.00; you can check for this or just pass it
       as a legal argument to pnmrotate.

       pamtilt operates on the first plane of the input image, which is  either
       PNM  or PAM, and ignores any other planes.  Ordinarily, the input is PGM
       or GRAYSCALE PAM, so there is only one plane.

       pamtilt works on bilevel (PBM, BLACKANDWHITE  PAM)  images  as  well  as
       grayscale,  but  you  will  minimize artifacts if you scan and rotate in
       grayscale before you apply a threshold to make a bilevel image.

OPTIONS
       In addition to the options common to all  programs  based  on  libnetpbm
       (most notably -quiet, see ]8;;index.html#commonoptions\ Common Options]8;;\ ), pamtilt recognizes the fol-
       lowing command line options:

       -angle=maxangle
              Assume  a  maximum  tilt angle of maxangle (measured in degrees).
              The default value is  sufficient  for  most  images,  even  those
              scanned somewhat carelessly.

              The default is 10.0.

       -fast  Skip the third iteration for speed at the expense of accuracy.

       -verbose
              Show  on  Standard Error the measurements computed at each tested
              angle.

       Here are some other options you can use to tune the operation of pamtilt
       but they're seldom needed.  The default values accommodate a wide  vari-
       ety of input documents.

       -quality=q
              Require  a signal-to-noise ratio of a least q on the first itera-
              tion to report a valid result.  Larger values reduce the  chances
              of obtaining a bogus result at the risk of obtaining no result at
              all.

              The default is 1.0.

       -hstep=n
              Set  the  horizontal  increment  to check every nth column.  This
              value affects both run time and memory requirements.

              The default is 11.

       -vstep=n
              Set the vertical increment to check every nth row.  Larger values
              usually work, reducing run time, but they increase  the  risk  of
              incorrect results.

              The default is 5.

       -dstep=n
              Set  the vertical distance used when checking pixels in a column.
              The default is intended to minimize the effect of noise  along  a
              horizontal boundary.

              The default is 2.

       -astep=n
              Set the angle increment of the first iteration, in degrees.

              The default is 1.0.

REFERENCES
       pamtilt implements a somewhat simplified algorithm inspired by: "Measur-
       ing  Document  Image  Skew  and  Orientation",  by Bloomberg, Kopec, and
       Dasari.  In SPIE Volume 2422, Document Recognition  II,  pages  302-316,
       February 1995.

SEE ALSOpnmrotate(1)pgm(1)

HISTORY
       pamtilt was new in Netpbm 10.30 (October 2005).

       Gregg  Townsend  wrote it and sent it to Bryan Henderson in August 2005.
       Bryan recoded it to fit Netpbm conventions.

DOCUMENT SOURCE
       This manual page was generated by the Netpbm tool  'makeman'  from  HTML
       source.  The master documentation is at

              http://netpbm.sourceforge.net/doc/pamtilt.html

netpbm documentation             28 August 2005          Pamtilt User Manual(1)

Generated by dwww version 1.16 on Tue Dec 16 06:19:57 CET 2025.