Provided by: pfstools_2.2.0-9_amd64 bug

NAME

       pfshdrcalibrate  -  Create  an  HDR image or calibrate a response curve from a set of differently exposed
       images supplied in PFS stream.

SYNOPSIS

       pfshdrcalibrate [--response <type>] [--calibration <type>] [--gauss <val>] [--response-file <filename.m>]
       [--save-response  <filename.m>]  [--multiplier  <val>]  [--bpp  <val>]  [--luminance]  [--samples  <val>]
       [--saturation-offset <val>] [--deghosting <val>] [--noise-parameters <val>] [--help] [--verbose]

DESCRIPTION

       Create  an  HDR  image or calibrate a response curve from a set of differently exposed images supplied in
       PFS stream.

       When used with 8bit images, luminance in the output  HDR  image  corresponds  to  real  world  values  in
       [cd/m^2]  provided  that  hdrgen  script contained correct information on exposure time, aperture and iso
       speed. Note that sometimes ISO speed indicated by camera does not correspond to standard (ISO-100  is  in
       fact ISO-125).

       The accuracy of absolute calibration has not been thoroughly tested with different camera models, however
       one can expect the relative measurement error below 8%. Use pfsabsolute in case of systematic error.

       The merging of multiple exposures is done in a noise-optimal manner, as explained in the paper:

              Hanji, Param, Fangcheng Zhong, and Rafal K. Mantiuk.
              “Noise-Aware Merging of High Dynamic Range Image Stacks without Camera Calibration.”
              In Advances in Image Manipulation (ECCV Workshop), 2020. http://arxiv.org/abs/2009.07975.

OPTIONS

       --response <type>, -r <type>

              Allows  one  to  choose  from  predefined  response  curves. This can be used either to apply this
              response or use it as an initialization for automatic self-calibration. Predefined response curves
              are: "linear", "gamma", "log". Default is "linear". This option can be used  only  with  Robertson
              method.

       --calibration <type>, -c <type>

              Type  of  automatic self-calibration method used for recovery of the response curve and/or type of
              method used for HDR merging. Accepted types include: "robertson", "mitsunaga". "robertson" is  the
              default  and  recommended  algorithm (see commends in the Bugs section below). More information on
              the algorithms can be found in:
              M.A. Robertson,  S. Borman and R.L. Stevenson
              Dynamic range improvement through multiple exposures
              In: Proc. of International Conference on Image Processing 1999 (ICIP 99), pp 159-163 vol.3

              and

              T. Mitsunaga and S. K. Nayar
              Radiometric Self Calibration
              In: Proc on IEEE Conf. on Computer Vision and Pattern Recognition (CVPR'99). Volume 1, p. 1374
       --gauss <val>, -g <val>

              Sigma value for the Gaussian used  as  a  weighting  function  (in  the  range  0-1).  Applies  to
              Robertson02 algorithm. Default value: 0.2

       --response-file <filename.m>, -f <filename.m>

              Use  response  curve  saved  in the matlab format file. Turns off automatic self-calibration. Uses
              Robertson02 or Mitsunaga99 model to apply the response curve (see -c option).

       --save-response <filename.m>, -s <filename.m>

              Saves the response curve calculated during automatic self-calibration stage  in  a  matlab  format
              file.  Can  be  later  reused  for  set  of images captured with given camera. Also works fine for
              plotting with gnuplot.

       --multiplier <val>, -m <val>

              Input multiplier value. Can be used to manipulate the range of source exposures. Default value for
              Robertson method is 256 since LDR images are by default scaled to 0..1. This value is set  to  1.0
              for Mitsunaga method.

       --bpp <val>, -b <val>

              Number of bits per pixel in input data from the camera. Default value is 8.

       --samples <val>, -p <val>

              Number of samples used during the self-calibration in Mitsunaga algorithm. Default is 50000.

       --saturation-offset <val>, -o <val>

              Pixels  are considered saturated if their value exceeds max_val * (1-sat_offset), where max_val is
              the maximum pixel value (e.g. 255 or 65535) and sat_offset is the percentage of the maximum value.
              The default value is 0.01. Use this if you can see banding or wrong colors in the regions in which
              one of the exposures is saturated.

       --noise-parameters <val>, -n <val>

              Measured noise parameters for the specific camera used. This can be specified in 2 ways. The first
              is using a comma separated list of 5 values  (3  color  coefficients,  std_readout  and  std_adc).
              Alternatively,  some  presets  have  been  defined  and can be used by specifying the camera name.
              Cameras currently supported: SonyA7r1, CanonT1, SonyA7r3

       --deghosting, -d [<val>]

              EXPERIMENTAL. Try to use a  simple  rejection  criterion  to  reduce  ghosting  artifacts  due  to
              movement. If the option is specified, the pixel values that <val> standard deviations of the noise
              away  from the reference exposure are rejected. When the option is missing from the argument list,
              the deghosting is disabled. When the option is specified without any value, 2 standard  deviations
              are used.

       --luminance, -Y

              Recovery of response curve will be performed for luminance channel only.

       --verbose

              Print additional information during program execution.
       --help

              Print list of command line options.

EXAMPLES

       pfsinme *.JPG | pfshdrcalibrate -v -s response.m | pfsview
              Recover  the  response  curve  from  set of all JPEG files in the current directory and save it to
              response.m file. To view the response curve, use pfsplotresponse command.
       pfsinme *.CR2 | pfssize  --maxx 1200 | pfshdrcalibrate -r linear -v --bpp 16 | pfsout result.exr
              Read Camera RAW images (from Canon), resize them so that the image width is  equal  or  less  1200
              pixels, merge them into an HDR image using all 16 bits and save as an Open EXR image.
       pfsinhdrgen sample.hdrgen | pfshdrcalibrate -x -f response.m | pfsview
              Create  an HDR image from exposures defined in sample.hdrgen using the response curve "response.m"
              and view it. Fix the problem with black values given to overexposed pixels.
       pfsinhdrgen sample.hdrgen | pfshdrcalibrate | pfsview
              Create an HDR image from exposures defined in sample.hdrgen  using  the  default  self-calibration
              method and view it.
       pfsinhdrgen sample_dcraw.hdrgen | pfshdrcalibrate -b 16 -r linear -c none | pfsview
              Given  that  the  script  sample_dcraw.hdrgen  refers  to  camera RAW files (see pfsindcraw), this
              example will generate an HDR image assuming a linear response.
       pfsinhdrgen sample.hdrgen | pfshdrcalibrate | pfsview
              Create an HDR image from exposures defined in sample.hdrgen  using  the  default  self-calibration
              method and view it.
       pfsinhdrgen sample.hdrgen | pfshdrcalibrate -c mitsunaga -samples 100000 -s resp_mitsunaga.m >/dev/null
              Create  an  HDR image from exposures defined in sample.hdrgen using the mitsunaga self-calibration
              method with 100000 samples and save it to "resp_mitsunaga.m".

SEE ALSO

       pfsplotresponse(1) pfsinhdrgen(1) jpeg2hdrgen(1) pfsview(1) pfsindcraw(1) pfsabsolute(1) pfsglview(1)

BUGS

       Currently Mitsunaga and Nayar's method does not produce  reliable  camera  response  curves.  Robertson's
       method should be used instead.
       Pink  pixels  may  appear  in  saturated areas of outdated version of DCRAW is used. It is recommended to
       install libraw instead of DCRAW (which is discontinued).
       Robertson's method may produce banding or wrong colors in saturated areas. For best results, there should
       be a sufficient numbers of exposures in which no pixels is over- or under-saturated in all the exposures.
       It is possible to fix these issues with some heuristics (as most HDR merging software does),  but  it  is
       currently not done in this release. pfscalibration was meant to be used for research purposes and getting
       accurate result is more important than generating good looking images. The heuristics could hide the well
       visible artifacts, but would also introduce error to the measurements.
       For  any  other  issues  please  report  bugs  and  comments  on  implementation  to the discussion group
       http://groups.google.com/group/pfstools

                                                                                              pfshdrcalibrate(1)