16bit workflow 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
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
- 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.
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.
convert -gamma 2.2 -depth 8 stitch.tif stitch.jpg
Adjusting in a GUI tool
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 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