Here is an example of a simple 360 deg panorama in Hugin that shows that good results can be obtained using “wrong” techniques. Specifically, you can use autoexposure, even for highly contrasty scenes that normally would required bracketed exposures and HDR+Tonemapping.
For post-processing, you can crank up the highlight and shadow recovery and individually tweak each frame for exposure. It is not necessary to shoot with manual exposure with each frame with the same exposure settings, nor process them identically.
Additionally, you do not need very much overlap between frames in many cases, only a few control points can do, and they only need to be placed along the seam lines. A few manually well placed control points can quickly give a good stitch.
This example also shows some other things that you may need to watch out for. You should clean your lens and sensor. I’ve not been able to do much photography lately so my equipment has not been maintained as well as they should have been. My lens also needs to be adjusted as the plane of focus is slightly skewed and it does not reach infinity focus. This is slightly masked by the depth of field at f/8 but can still be detected in the full sized source imagery.
I have provided downsized source images and a Hugin project file if you want to have a look at how it was assembled. I only spent a few minutes putting it together so I’m sure it could be further optimised. The final full sized and processed panorama can be seen at 360Cities. I adjusted the exposure curve, sharpened the image, tweaked saturation, and repaired the dust spots in the sky.
Traditionally, panoramas would be taken using a fixed manual exposure, bracketed if needed. But panoramic software has advanced to the point that they can handle the assembly and blending of source images taken with wildly different exposures. I am making available a set of files taken in Ripon Cathedral that shows the ease at which high contrast scenes can be tackled without having to take large amounts of bracketed photos.
In this example, the base exposure throughout the scene varied by 6 stops (1/40th to 0.63s) hence there was a large amount of inter-frame contrast. But the contrast in any one frame (intra-frame) was just within the capabilities of my camera, hence I was able to take a 5+1+1 shooting pattern, without bracketing, and capture the scene without excessively blown highlights. This is variation of the usual 4+1+1 shooting pattern but with an extra shot that was taken aimed at the bright highlights of the sunlit windows.
This extra shot was masked into the rest of the pano and invoked for an “underexposed” export of the stitch in addition to the normally exposed export. Hugin has no problems in handling the differently exposed frames and after photometric optimisation, the frames blend seamlessly. The normal and underexposed versions were combined using Enfuse and minor edits performed.
Hopefully this example demonstrates that panoramic software tools have come a long way since the traditional advice of locking off exposure was formulated. With some practice, the use of autoexposure when taking panoramas can be quite effective in speeding up workflow and creating a more efficient workflow. Of course, judgement is still required to use where necessary bracketing in order to tame intra-frame (as opposed to inter-frame) contrast.
Download Example Files (from above) and extract to folder
Open Hugin and import source files
Set the lens parameters (Focal Length 8.7mm, Crop 1.5), Full Frame Fisheye for images taken around at 90 degree yaw intervals, Circular Fisheye for the Zenith and Nadir images. Assign lenses so that the the first 4 images are Lens 0, Zenith is Lens 1, Nadir is Lens 2.
Mask each image. For the first 4 images, mask off the tripod/panohead and any other extraneous objects, also the corners. Set crop circles for the Zenith and Nadir.
Now add control points to each overlapping pair of images. Concentrate on placing a good spread of points along the centre of the overlapping regions. There is no need for placing points away from the likely seam lines.
Add vertical control points/lines so that the pano will be level
Start optimising the position, gradually including field of view, barrel, then everything except translation. Periodically check for control points with large errors, correct if necessary. Use the Custom Optimisation options to fine tune the process.
Check that the geometry of the assembly is satisfactory using the Preview Window.
Start on optimising exposure. Choose Low Dynamic Range, then Custom. Deselect optimisation of Vignetting and Camera Response. Optimise just the exposure values, the the Red and Blue Multipliers.
Finally, stitch and export the panorama in your preferred format.
You try stitching the image using the automatic mode in Hugin, or in any other panoramic programme of your choice.
Often, people will say that you need to rotate your camera around “the nodal point” of your lens to eliminate parallax when taking panoramas. Unfortunately, this is not correct for several reasons.
Firstly, there is not a single nodal point for a lens, in fact there are 2 (front and rear). Secondly, neither of these 2 nodal points is the point around which you need to rotate the lens to avoid parallax . One should rotate the lens around the entrance pupil (the apparent position of the aperture stop) to avoid parallax. This position is also called the No-Parallax Point (NPP for short).
There are complications of course. The entrance pupil position can change depending on the angle at which the light rays enters the lens. This is especially noticeable in fisheye lenses where the entrance pupil can move significantly at extreme angles off-axis.
This shift in entrance pupil can occur in “normal” lenses as well but usually to a smaller degree. A more detailed examination of where the entrance pupil is located and can be shifted can be found here (pay attention to p.10 in particular). So the next time some says “nodal point”, gently guide them to use the term “entrance pupil” or “no-parallax point” instead.
 From Wikipedia: “The nodal points are widely misunderstood in photography, where it is commonly asserted that the light rays “intersect” at “the nodal point”, that the iris diaphragm of the lens is located there, and that this is the correct pivot point for panoramic photography, so as to avoid parallax error. These claims generally arise from confusion about the optics of camera lenses, as well as confusion between the nodal points and the other cardinal points of the system. (A better choice of the point about which to pivot a camera for panoramic photography can be shown to be the centre of the system’s entrance pupil.”
I had the opportunity to visit London and managed to find some time to shoot some panoramas. The weather wasn’t ideal with scattered showers and cloudy skies but the rain managed to hold off for the time I had available. In the lead up to Christmas, festivities were in full swing so Christmas lights, trees, and markets would provide colourful subjects.
I use a Sony A7m3 “fullframe mirrorless” camera. Previously I used a Sony A5100 with an APS-C sized sensor. They both have 24 megapixels but the A7m3 has considerably better dynamic range and high ISO performance.
I use the Samyang 12mm/2.8 Fisheye lens. This is a “fullframe fisheye” lens, “fullframe” refers to the fact that the image circles covers the entire sensor. Previously I used the Samyang 8mm/2.8 Fisheye lens that is a “fullframe fisheye” on the A5100 APS-C camera. The 12mm/2.8 has better flare resistance that is noticeable on night scenes.
I use the Nodal Ninja 3 Mk III panohead with Rotator Mini and Nadir Adapter. I upgraded from the Nodal Ninja 3 Mk I/II hybrid that had served me well shooting the Konica-Minolta 7D, Sony A700, A580, A77, NEX-7, and A5100 with a Peleng 8mm, Sigma 10mm, Samyang 8mm/3.5, and Samyang 8mm/2.8 over the years. The new panohead fits my upgraded rig a bit better and the Nadir Adapter is a time saver. I use a Benro C-169M8 Travel Tripod with a Manfrotto 496 ballhead.
The raw files were imported in Capture One 20 Express (for Sony). I selected the frames that would be assembled. There were many spare frames since I would shoot extra shots to capture moving objects (people, cars etc,), high contrast scenes (usually base exposure and -2EV), and to fill in shadows.
The selected frames were then adjusted in a batch. First thing is to apply the same white balance setting. Shots taken at night under a variety of mixed lighting can be challenging to get the white balance “right”. Usually, I try to balance the colour temperatures throughout the scene, taking care with the green-magenta shifts that can occur with fluorescent and LED lights. Other common settings include chromatic aberration correction, black level point, sharpness fall-off, and clarity.
Each frame is then adjusted for exposure, It is critical to preserve the highlights, this is done by a combination of highlight recovery and overall exposure. Some shadow recovery can be used to prevent the darker areas being crushed to black but there is no need to fully recover shadows at this stage.
I usually leave the saturation and contrast untouched. These can be adjusted after stitching. Occasionally, I may need to reduce the contrast of the nadir shot so that it blends in with the edges of the other shots.
The adjusted raw files are now exported as 16-bit TIFFs in Adobe RGB colour profile. These are then imported into Hugin for assembly and stitching. There are other good programs for creating panoramas including PTGUI but Hugin has the advantage of being free. Hugin is also quite powerful, allowing detailed control of the alignment and exposure optimisation process. For a more automated solution, PTGUI is probably a better choice.
After the images have been imported into Hugin, the first step is to mask the images to remove the panoramic head and tripod that may intrude into the edges of the frame. The Zenith and Nadir are also cropped to circular regions. It is useful to define the focal length and projection type of the lens, 13.1mm and full-frame fisheye are used for the Samyang 12mm/2.8 Fisheye. I assign the same lens to the horizontal frames and separates ones to each of the Zenith and Nadir. The Nadir in particular will need to be optimised differently to the other frames in order to compensate for the likely shift in position.
Next step is to add control points (CPs) between overlapping frames. There are automatic methods but I prefer to manually add points. I find that I spend more time fixing automatically generated CPs than if I had added them manually. I start off by connecting the horizontal frames. To get a good stitch, all that is needed is that the frames match along a seam line, generally placed along the middle of the overlap region. Hence, I only add CPs along a line that stretches from the top to the bottom of the overlap. For the Nadir, I add 2 to 3 CPs per overlap with the horizontal frames. Extreme distortion parameters will usually need to be used to get it to match up with the rest of the pano.
After the CPs have been added, then the position optimisation process than begin. I start with optimising just the position. Next I optimise position, angle of view, and barrel. Finally, I optimise all parameters except translation. Throughout, I check for any CPs that have large errors as this might indicate that they may be incorrectly placed. I either correct the placement or delete them if there are sufficiently many other CPs.
Hopefully, after several rounds of optimisation and tweaking of the CPs, the errors will be small (maximum of a few pixels in a 14Kx7K pano) and visually the pano looks aligned with no obvious errors in the preview window. Additional masks may be added to remove moving objects or else control what elements from each frame end contribute to the final pano.
The next stage is photometric optimisation. For many years now, panoramic software have been able to cope with source photos shot at difference exposure values and stitch them together in a seamless manner. This allows a more flexible and arguably optimum manner to capture the initial source photos . I will use autoexposure to create a base layer together with bracketing of selected frames to capture blown highlights. In the exposure optimisation stage, Hugin can exposure match all the frames in a near seamless way. I can then export the full pano at various brightnesses which have shadow, mid, and highlight detail separately. These are then combined using Enfuse to produce a single pano that incorporates the detail in both shadows and highlights in a process called exposure fusion.
The exported pano (exposure fused if necessary) from Hugin in equirectangular formal is then post-processed. I use Picture Windows Pro 7 as my main image editor , with Photoshop 6 for cases where I need to do spot removal or extensive cloning. First step is to adjust the contrast using curves. I’ll first bring up the shadows as these will be a bit dark as I try to protect the highlights in the previous steps. Then I’ll apply an S-curve to boost mid-range contrast and compress the highlights. The preserved highlights can look unnaturally dark so I’ll bring them up near the top of the histogram without blowing them out.
Sharpening of the image is very important. I’ll perform a large radius unsharp mask, coarse sharpen, and a fine sharpen. The sharpening process utilises pixels in a region hence problems can occur at the +/-180 degree boundary of the equirectangular image. To avoid a visible seam arising from such non-global adjustments, I’ll create a pano 720 degrees (or 1080 degrees) wide before apply the filters. Then I’ll crop out a central 360 degree section to get back to a regular equirectangular projection.
Final colour adjustment is applied, both selective and global saturation. Any touch up (spots, shadows, or minor stitching errors) are then performed in Photoshop. I produce both a final TIFF and a JPG that is in sRGB for export to the web.
 Instead of using the same exposure value for all source frames, you can expose each shot optimally. For example, a scene may have 20 stops of contrast between one direction and the opposite, e.g. sun and shadow. The traditional method would be to use manual exposure and bracket, e.g. -6, -3, 0, +3, +6EV and use the camera DR to capture the ends of the contrast range. The +6EV shot would cover the shadow and the +6EV shot would cover the highlight. But this method is wasteful since usually the contrast in a single shot is less than the full bracket range. Often only a single shot in that direction is required, or else a second bracketed shot will cover the remaining fraction of high contrast cases. Instead of 30 shots (4+1+1 shoot pattern times 5 bracketed shots), it is usually possible to only use 7 or 8 shots in total. The final result is as good as the fully bracketed version but with a considerable reduction in shooting time, this can be significant in low light conditions but can also be a major factor in situations where there are moving objects and/or changing lighting conditions.
 Picture Windows Pro 7 is now free. A newer version has been developed by version 7 is still a very useful image editing program. The paradigm is different to that of Photoshop so at first glance it may look to be fairly crude. But it is small, quick, and easy to use for many routine image adjustment tasks.
 I have no commercial relationship with any companies or their products mentioned in this post, other than being a satisfied customer of some of them.
A particular challenge taking panoramas in churches is capturing the beauty of the stained glass windows. In general, it is difficult to get a photo that shows the richness of their colours yet still allowing the interior of the church to be seen since the contrast range is tremendous. It is especially hard when they are part of a full panorama. This can be overcome with a lots of patience and work in post-processing, I have developed an exposure blending technique that avoids the heavily processed “HDR look” yet preserves the intensity of light stream through the stained glass windows. The example here shows the South Chapel of Notre-Dame du Taur. This is especially important in dark churches where the windows would otherwise be white if the photo was exposed for the rest of the church.
I had the pleasure of visiting York for several days and was able to take a few panoramas of the Minster. Tourist entry is £10 (or £15 which includes a visit to the Tower), it costs a lot of money to maintain such a large and historic building so this entry charge is not so unreasonable. Rather progressively, there are no prohibitions on photography or tripods (as long it’s not for commercial use and your tripod won’t damage the floor). For a panographer, this was a great opportunity and well worth the visit.
The main challenge, as is common to churches, is the huge contrast between the darkest shadows and the brightly lit windows. Doing HDR capture is the surefooted, though laborious default procedure. Often HDR and tonemapping gives impressionistic results, derogatively called the “HDR-look”. It isn’t the fault of HDR capture per se but rather the tonemapping settings that are usually to blame for garish results.
Alternatively with some judicious bracketing of just the relevant areas, one can produce decent results by exposure blending the shadow and highlights. This is what I have done here, using a moderate amount of exposure compensation on the brightly lit East and West ends of the Minster to retain some detail that would otherwise have been washed out.
I have been going through some old unstitched panoramas. I thought it would be a good opportunity to test other panorama presentation methods and came across Round.me. Here is a panorama taken in King’s College Chapel nearly 5 years ago. The quality isn’t as good as my current set-up but still produces a workable image.
It’s been good to revisit old panoramas, not only has the equipment changed but also my technique, continually improving my methods and workflow to obtain better results, or the ability to shoot in more challenging conditions.