.help shiftlines Dec98 images.imgeom .ih NAME shiftlines -- shift lines in a list of images .ih USAGE .nf shiftlines input output shift .fi .ih PARAMETERS .ls input List of images to be shifted. Image sections are allowed. .le .ls output List of output image names. If the output image name is the same as the input image name then the shifted image replaces the input image. .le .ls shift Shift in pixels. .le .ls interp_type = "linear" The interpolant type use to computed the output shifted image. The choices are the following: .ls nearest nearest neighbor interpolation. .le .ls linear linear interpolation in x. .le .ls poly3 third order interior polynomial in x. .le .ls poly5 fifth order interior polynomial in x. .le .ls spline3 cubic spline in x. .le .ls sinc sinc interpolation in x. Users can specify the sinc interpolant width by appending a width value to the interpolant string, e.g. sinc51 specifies a 51 pixel wide sinc interpolant. The sinc width input by the user will be rounded up to the nearest odd number. The default sinc width is 31 pixels. .le .ls drizzle 1D drizzle resampling. Users can specify the drizzle pixel fraction by appending a value between 0.0 and 1.0 in square brackets to the interpolant string, e.g. drizzle[0.5]. The default value is 1.0. The value 0.0 is increased to 0.001. Drizzle resampling with a pixel fraction of 1.0 is identical to linear interpolation. .le .le .ls boundary_type = "nearest" Boundary condition for shifts outside the input image. The minimum match abbreviated choices are: .ls "nearest" Use the values of the nearest boundary pixel. .le .ls "wrap" Generate a value by wrapping around to the opposite boundary. .le .ls "reflect" Generate a value by reflecting around the boundary .le .ls "constant" Use a user supplied constant pixel value. .le .le .ls constant = "0.0" The constant for constant boundary extension. .le .ih DESCRIPTION The list of images in \fIinput\fR is shifted by the amount \fIshift\fR and copied to the list of output images \fIoutput\fR. The number of output image names must be the same as the number of input images. An output image name may be the same as the corresponding input image in which case the shifted image replaces the input image. The shift is defined by the following relation. xout = xint + shift Features in the input image are moved to higher columns when the shift is positive and to lower columns when the shift is negative. For example, to shift a feature at column 10 to column 12 the shift is 2.0. The task has been optimized for integral pixel shifts. There are five choices for the one dimensional image interpolation which is selected with the parameter \fIinterp_type\fR. The value of the output pixels corresponding to input pixel positions outside the boundaries of the image is determined by the parameter \fIboundary_type\fR. .ih EXAMPLES 1. Shift the lines of an image by 0.25 pixels to the right. cl> shiftlines imagein imageout 0.25 2. Shift the lines of an image by -.3 pixels using cubic spline interpolation and replace the input image by the output image. cl> shiftlines image image -.3 interp=spline3 .ih TIMINGS It requires approximately 28 and 59 seconds to shift a 512 square image using linear and cubic spline interpolation respectively (Vax 11/750 with fpa). .ih BUGS .ih SEE ALSO imshift, magnify, rotate, imlintran, blkrep, blkav, geotran .endhelp