Difference between revisions of "16bit workflow with hugin"

From PanoTools.org Wiki
Jump to navigation Jump to search
m (add link to ufraw)
m (Link to Krita)
Line 47: Line 47:
 
   convert -gamma 2.2 -depth 8 stitch.tif stitch.jpg
 
   convert -gamma 2.2 -depth 8 stitch.tif stitch.jpg
  
=== Adjusting by eye ===
+
=== Adjusting in a GUI tool ===
  
 
Open the [[TIFF]] file in a [[HDR]] aware image editor such as [[cinepaint]], tweak the
 
Open the [[TIFF]] file in a [[HDR]] aware image editor such as [[cinepaint]], tweak the
 
levels by eye, retouch and save in an 8bit per channel format such as [[JPEG]].  For more details
 
levels by eye, retouch and save in an 8bit per channel format such as [[JPEG]].  For more details
 
read a thorough [http://www.behrmann.name/cms/cinepaint/bildbearbeitung/cinepaint_ccorrection.html cinepaint tutorial on manipulating 16bit photos].
 
read a thorough [http://www.behrmann.name/cms/cinepaint/bildbearbeitung/cinepaint_ccorrection.html cinepaint tutorial on manipulating 16bit photos].
 +
 +
[http://www.koffice.org/krita/ Krita] is another image editor (Linux only) that can read [[HDR]] files.
  
 
The standalone [[UFRaw]] GUI should be able to read these [[TIFF]] files and allow sophisticated
 
The standalone [[UFRaw]] GUI should be able to read these [[TIFF]] files and allow sophisticated

Revision as of 11:44, 24 October 2005

This tutorial doesn't cover reasons why you might want to shoot with RAW and stitch in HDR format. It is a simple HOWTO listing the tools available and how to use them with hugin.

Preparing the HDR images

Start by using dcraw to read the RAW files and batch convert them into portable 16bit per channel PPM files. RAW pictures from my Nikon 8700 have a .nef extension, so the command looks something like this:

 dcraw -v -4 dscn*.nef

These PPM files are not readable by hugin or nona, so the next step is to use ImageMagick to create 16bit per channel TIFF files:

 convert -rotate 270 dscn3088.ppm dscn3088.tif
 convert -rotate 270 dscn3089.ppm dscn3089.tif
 ...

Note that I rotated them at the same time since these are portrait shots. Also, note that although hugin, nona and enblend support floating-point data, there is no real loss converting RAW data to 16bit colour depth as RAW images are typically only 12bit in the first place.

Stitching with hugin

The TIFF images can be loaded into hugin as per usual with a couple of caveats:

  • Everything will appear very dark since our images represent linear sensor data.
  • Information about the field of view was lost during the PPM stage, so this will need to be re-entered manually or re-optimised with PTOptimizer.

Stitch the images as per usual into a TIFF file, you can use enblend as the final step.

Post processing

This TIFF file is in 16bit per channel RGBA format. Again this will appear very dark in most image viewers (if they manage to open it), so you need an extra step to create the final 8bit per channel human-readable images.

Gamma adjustment

Sometimes all that is needed is to adjust the gamma and save, this ImageMagick command will output a usable JPEG image:

 convert -gamma 2.2 -depth 8 stitch.tif stitch.jpg

Adjusting in a GUI tool

Open the TIFF file in a HDR aware image editor such as cinepaint, tweak the levels by eye, retouch and save in an 8bit per channel format such as JPEG. For more details read a thorough cinepaint tutorial on manipulating 16bit photos.

Krita is another image editor (Linux only) that can read HDR files.

The standalone UFRaw GUI should be able to read these TIFF files and allow sophisticated conversion to low dynamic range 8bit formats.

Alternatively, use pfstools to manipulate the image: pfstools has the facility to read HDR TIFF files, unfortunately it chokes on the alpha channel created by nona and enblend, so you have to strip this out first. You can do this by converting to PPM format using ImageMagick:

 convert stitch.tif stitch.ppm

This can be viewed with the pfsview GUI tool:

 pfsinppm stitch.ppm | pfsview

A quick way to create a usable 8bit per channel image is to select a gamma of 2.2, fit to dynamic range, zoom 1:1 and save as PNG.

Tone mapping

A related package to pfstools called pfstmo can do automatic tone mapping of a HDR image and compress it into a low dynamic range output. There are many options and techniques available, commands look like this:

 pfsinppm stitch.ppm | pfstmo_drago03 | pfsgamma -g 2.2 | pfsout stitch.png