Man Linux: Main Page and Category List

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)