dwww Home | Manual pages | Find package

Pamrubber User Manual(1)    General Commands Manual    Pamrubber User Manual(1)

NAME
       pamrubber  -  a rubber-sheeting utility that stretches an image based on
       control points

SYNOPSIS
       pamrubber {-tri | -quad} [-linear] [-frame]  [-randomseed=N]  cp1x  cp1y
       [cp2x  cp2y  [cp3x  cp3y  [cp4x  cp4y]]] cp1x cp1y [cp2x cp2y [cp3x cp3y
       [cp4x cp4y]]] [filename]

       Minimum unique abbreviation of options is acceptable.  You may use  dou-
       ble hyphens instead of single hyphen to denote options.

DESCRIPTION
       This program is part of Netpbm(1).

       The  pamrubber  utility  converts  a pam image into a new image with the
       contents moved around.   The  transformation  is  often  called  "rubber
       sheeting":  you  identify  control  points  (CP) on the source image and
       specify new positions for those points  in  the  new  image.   pamrubber
       moves all the pixels around, stretching and compressing as necessary, as
       if  the  original  image were on a sheet of rubber and you pulled on the
       sheet to make the control points move to their new locations.

       The new image has the same dimensions and format as the original.

       The transformation can happen in two very different ways, called  "quad"
       and  "tri."  With  the former, you must specify four control points (for
       both source and target).  These are the corners  of  two  quadrilaterals
       that  will  act  as the coordinate system for both source and target im-
       ages.  Consider them as non-orthogonal (0,0),  (0,1),  (1,0)  and  (1,1)
       points.  This transformation comes close to the one pamperspective does,
       however that program does other corrections as well.

       When you specify less than four control points, the program adds control
       points  in  the  following  way.   With  three control points, pamrubber
       chooses the fourth one such that the four points form  a  parallelogram.
       With two points, pamrubber considers them the opposite corners of a rec-
       tangle.   When you specify only one control point, pamrubber uses a rec-
       tangle from the top left corner of  the  image  to  the  single  control
       point.

       In  "tri" mode, pamrubber conceptually cuts up the source and target im-
       age into triangles.  It Transforms within  each  corresponding  pair  of
       triangles  in a stretching fashion.  It's like pulling on the three cor-
       ners of the triangle.  In this mode, each pixel in the source image gets
       mapped to a position in the target image. No pixels are lost.

       When, in "tri" mode, you specify only a  single  control  point  in  the
       source  and  target  image,  pamrubber  creates four triangles from this
       point to the four corners of the image. With  two  points,  the  program
       creates  six triangles from the two endpoints of the line connecting the
       two points, again to the four corners of the image. Three control points
       is in a way the core of this utility in "tri" mode.  Between  the  three
       edges of the central triangle and the four edges of the image, pamrubber
       constructs another seven triangles.  Four control points define two cen-
       tral  connected  triangles.  In total this results in cutting the source
       and target image up into ten triangles.

       In this case clearly a picture says more than a thousand  words.   There
       is    a    graphical    illustration   of   these   various   modes   at
       ]8;;http://www.schaik.com/netpbm/rubber\ www.schaik.com/netpbm/rubber]8;;\ .  An example of how to use this  type  of
       rubber  sheeting in cartography is in the article ]8;;http://www.isprs.org/proceedings/XXXVI/5-W1/papers/21.pdf\ Visualizing the Land-
       scape of Old-Time Tokyo]8;;\ .

PARAMETERS
       The parameters are control points (cp) in pairs of x and y.  The  source
       and target image must have the same number of control points.  The mini-
       mum  number  of values specified here is 4 for a single control point in
       the source and target image.  The maximum is 16 for four control  points
       in each image.

       filename  is the name of the input file. If you don't specify this, pam-
       rubber reads the image from Standard Input.

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

       -tri | -quad

              This selects the type of rubber sheeting done.  You must  specify
              exactly one of these options.

       -linear

              This  determines whether pamrubber uses nearest neighbor interpo-
              lation or bilinear interpolation of four source pixels.

       -frame

              This option causes pamrubber to overlay the target image with the
              edges of the quadrilaterals, respectively the triangles used  for
              the  rubber sheeting.  To get the same overlay for the source im-
              age, use a pamrubber transformation with identical control points
              for source and target.

       -randomseed=N

              pamrubber randomizes some of its output.  So that you can produce
              repeatable results, you can choose the seed of the random  number
              generator  with this option.  If you use the same input image and
              the same random number generator seed, you should always get  the
              exact same output.  By default, pamrubber uses the time of day as
              the  seed,  so you get slightly different output when you run the
              program twice on the same input.

              Before Netpbm 10.61 (December 2012), this was  called  -randseed,
              and that still works.

SEE ALSO
       pam(1) and pamperspective(1)

HISTORY
       pamrubber was new in Netpbm 10.54 (March 2011).

AUTHORS
       Willem van Schaik wrote this program in February 2011 and contributed it
       to Netpbm.

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/pamrubber.html

netpbm documentation             February 2011         Pamrubber User Manual(1)

Generated by dwww version 1.16 on Tue Dec 16 06:36:22 CET 2025.