\ .\" This man page was generated by the Netpbm tool 'makeman' from HTML source. .\" Do not hand-hack it! If you have bug fixes or improvements, please find .\" the corresponding HTML page on the Netpbm website, generate a patch .\" against that, and send it to the Netpbm maintainer. .TH "PamRubber User Manual" 0 "February 2011" "netpbm documentation" .PP .SH NAME pamrubber - a rubber-sheeting utility that stretches an image based on control points .UN synopsis .SH SYNOPSIS \fBpamrubber\fP {\fB-tri | -quad\fP} [\fB-linear\fP] [\fB-frame\fP] [\fB-randomseed=\fP\fIN\fP] \fIcp1x cp1y\fP [\fIcp2x cp2y\fP [\fIcp3x cp3y\fP [\fIcp4x cp4y\fP]]] \fIcp1x cp1y\fP [\fIcp2x cp2y\fP [\fIcp3x cp3y\fP [\fIcp4x cp4y\fP]]] [\fIfilename\fP] .PP Minimum unique abbreviation of options is acceptable. You may use double hyphens instead of single hyphen to denote options. .UN description .SH DESCRIPTION .PP This program is part of .BR "Netpbm" (1)\c \&. .PP The \fBpamrubber\fP 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. \fBpamrubber\fP 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. .PP The new image has the same dimensions and format as the original. .PP 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 images. Consider them as non-orthogonal (0,0), (0,1), (1,0) and (1,1) points. This transformation comes close to the one \fBpamperspective\fP does, however that program does other corrections as well. .PP When you specify less than four control points, the program adds control points in the following way. With three control points, \fBpamrubber\fP chooses the fourth one such that the four points form a parallelogram. With two points, \fBpamrubber\fP considers them the opposite corners of a rectangle. When you specify only one control point, \fBpamrubber\fP uses a rectangle from the top left corner of the image to the single control point. .PP In 'tri' mode, \fBpamrubber\fP conceptually cuts up the source and target image into triangles. It Transforms within each corresponding pair of triangles in a stretching fashion. It's like pulling on the three corners 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. .PP When, in 'tri' mode, you specify only a single control point in the source and target image, \fBpamrubber\fP 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, \fBpamrubber\fP constructs another seven triangles. Four control points define two central connected triangles. In total this results in cutting the source and target image up into ten triangles. .PP In this case clearly a picture says more than a thousand words. There is a graphical illustration of these various modes at .UR http://www.schaik.com/netpbm/rubber www.schaik.com/netpbm/rubber .UE \&. An example of how to use this type of rubber sheeting in cartography is in the article .UR http://www.isprs.org/proceedings/XXXVI/5-W1/papers/21.pdf Visualizing the Landscape of Old-Time Tokyo .UE \&. .UN parameters .SH PARAMETERS .PP The parameters are control points (\fIcp\fP) in pairs of \fIx\fP and \fIy\fP. The source and target image must have the same number of control points. The minimum 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. .PP \fIfilename\fP is the name of the input file. If you don't specify this, \fBpamrubber\fP reads the image from Standard Input. .UN options .SH OPTIONS