xenial (1) pinterp.1.gz

Provided by: radiance_4R1+20120125-1.1_amd64 bug

NAME

       pinterp - interpolate/extrapolate view from pictures

SYNOPSIS

       pinterp  [  view  options  ][  -t  threshold  ][  -z zout ][ -f type ][ -B ][ -a|q ][ -e exposure ][ -n ]
       pictfile zspec ..

DESCRIPTION

       Pinterp interpolates or extrapolates a new view from one or more RADIANCE pictures and sends  the  result
       to  the standard output.  The input picture files must contain correct view specifications, as maintained
       by rpict(1), rvu(1), pfilt(1) and pinterp.  Specifically, pinterp will not work on pictures processed  by
       pcompos(1)  or  pcomb(1).   Each  input  file  must  be accompanied by a z specification, which gives the
       distance to each pixel in the image.  If zspec is an existing file, it is  assumed  to  contain  a  short
       floating  point  number for each pixel, written in scanline order.  This file is usually generated by the
       -z option of rpict(1).  If zspec is a positive number rather than a file, it will be used as  a  constant
       value  for  the  corresponding image.  This may be useful for certain transformations on "flat" images or
       when the viewpoint remains constant.

       The -n option specifies that input and output z distances are  along  the  view  direction,  rather  than
       absolute  distances  to  intersection  points.   This  option  is  usually  appropriate with a constant z
       specification, and should not be used with rpict(1) z files.

       The -z option writes out interpolated z values to the specified  file.   Normally,  this  information  is
       thrown away.

       Pinterp  rearranges  the  pixels  from the input pictures to produce a reasonable estimate of the desired
       view.  Pixels that map within the -t threshold of each other (.02 times the z distance  by  default)  are
       considered  coincident.  With the -a option, image points that coincide will be averaged together, giving
       a smooth result.  The -q option turns averaging off, which means that the first mapped pixel for a  given
       point  will be used.  This makes the program run faster and take less memory, but at the expense of image
       quality.  By default, two or more pictures are averaged together, and a single picture  is  treated  with
       the  faster  algorithm.   This  may  be  undesirable  when  a quick result is desired from multiple input
       pictures in the first case, or a single picture is being reduced in size  (anti-aliased)  in  the  second
       case.

       Portions  which were hidden or missing in the input pictures must be "filled in" somehow, and a number of
       methods are provided by the -f option.  The default value for this option is -fa, which results  in  both
       foreground  and  background filling.  The foreground fill algorithm spreads each input pixel to cover all
       output pixels within a parallelogram corresponding to that pixel's projection in the new  view.   Without
       it,  each  input  pixel contributes to at most one output pixel.  The background algorithm fills in those
       areas in the final picture that have not been filled with foreground pixels.  It does this by looking  at
       the boundary surrounding each blank area and picking the farthest pixels to each side, assuming that this
       will make a suitable background.  The -ff option tells the program to use only the foreground  fill,  the
       -fb option says use only background fill, and the -f0 option says not to use either fill algorithm.

       Even  when  both  fill  algorithms  are used, there may still be some unfilled pixels.  By default, these
       pixels are painted black and assigned a z distance of zero.  The -fc option can be  used  to  change  the
       color  used  for  unfilled pixels, and the -fz option can be used to set the z distance (always along the
       view direction).  Alternatively, the -fr option can be used to compute these pixels using rtrace(1).  The
       argument  to  this option is a quoted string containing arguments for rtrace.  It must contain the octree
       used to generate the input pictures, along with any other options necessary to match the calculation used
       for  the  input  pictures.   The -fs option can be used to place a limit on the distance (in pixels) over
       which the background fill algorithm is  used.   The  default  value  for  this  option  is  0,  which  is
       interpreted  as no limit.  A value of 1 is equivalent to turning background fill off.  When combined with
       the -fr option, this is roughly equivalent to the -ps option of rpict(1).

       In order of increasing quality and cost, one can use the -fa option alone, or the -fr option paired  with
       -fs  or  -ff  or -f0.  The last combination will result in the recalculation of all pixels not adequately
       accounted for in the input pictures, with an associated computational expense.  It is rare that  the  -fs
       option  results  in  appreciable  image degradation, so it is usually the second combination that is used
       when the background fill algorithm results in objectionable artifacts.

       The -B option may be used to average multiple views read from the standard input into a  single,  blurred
       output picture.  This is similar to running pinterp multiple times and averaging the output together with
       a program like pcomb(1).  This option is useful for simulating motion blur  and  depth  of  field.   (See
       pmdblur(1).)   The  input views are reported in the information header of the output file, along with the
       averaged view.  The picture dimensions computed from the first view will be  the  ones  used,  regardless
       whether  or not the subsequent views agree.  (The reported pixel aspect ratio in the output is determined
       from these original dimensions and the averaged view.)  Note that  the  expense  of  the  -fr  option  is
       proportional  to  the  number  of views computed, and the -z output file will be the z-buffer of the last
       view interpolated rather than an averaged distance map.

       In general, pinterp performs well when the output view is flanked by two  nearby  input  views,  such  as
       might  occur  in  a  walk-through animation sequence.  The algorithms start to break down when there is a
       large difference between the view desired and the view(s) provided.  Specifically, obscured  objects  may
       appear  to have holes in them and large areas at the image borders may not be filled by the foreground or
       background algorithms.  Also, specular reflections and highlights will not  be  interpolated  very  well,
       since  their  view-dependent  appearance  will  be  incompletely compensated for by the program.  (The -a
       option offers some benefit in this area.)

       The -e option may be used to adjust the output image exposure, with the same specification given  as  for
       pfilt.  The actual adjustment will be rounded to the nearest integer f-stop if the -q option is in effect
       (or there is only a single input picture).

EXAMPLE

       To interpolate two frames of a walk-through animation, anti-alias to 512x400 and increase the exposure by
       2.5 f-stops:

         pinterp -vf 27.vf -a -x 512 -y 400 -e +2.5 30.hdr 30.z 20.hdr 20.z > 27.hdr

       To extrapolate a second eyepoint for a stereo pair and recalculate background regions:

         pinterp -vf right.vf -ff -fr "-av .1 .1 .1 scene.oct" left.hdr left.z > right.hdr

       To convert an angular fisheye to a hemispherical fisheye:

         pinterp -vf fish.hdr -vth -ff fish.hdr 1 > hemi.hdr

AUTHOR

       Greg Ward

SEE ALSO

       getinfo(1), pdfblur(1), pfilt(1), pmblur(1), pmdblur(1), rpict(1), ranimate(1), rtrace(1), rvu(1)