I’ve just gotten back to taking and making panoramas after a break of several months. Some good weather lately inspired me to go out and try to capture the light.
The conditions were perfect for landscape photography with high altitude clouds providing texture to the sky, a moderately clear horizon for the setting sun for lovely colours, and not too windy. The waves add texture to the water but do pose a slight challenge to making sure that seams are not too obvious. A small amount of retouching during post-processing was needed to smooth over the most obvious joins.
The main challenge is dealing with the large range of contrast within the whole scene. The dark rocks and seaweed have to be balanced against the sunset and bright sky. Much of this is able to be handled by the dynamic range of the camera, a Sony A7m3 shooting raw, but some additional steps needed to be taken to comfortably cover the extremes in exposure. In addition to the usual shooting pattern of 4 around (spaced at 90 degrees) + Zenith + Nadir, additional shots were made directly at the brightest parts of the sky using autoexposure (as I use for all the shots). This additional shot will have detail in the brightest parts that can be combined with the rest of pano that has detail in the dark and mid tones. Enfuse is used to combine the various exposures into a single image without having to go through the steps of creating an HDR intermediate image and then tonemapping.
I have also delved into the back catalogue of panoramas that were taken but but assembled, in this case ones taken in 2019 and 2020.
These panoramas varied in difficulty. The Christmas Market pano had many extra shots added and masked in to deal with moving objects such as people and the Big Wheel. Exposure blending was also used to tame the contrast. The Pollok House pano did not have to worry to much about moving objects between frames but did have a very large contrast range. This require bracketing and exposure blending to arrive at a decent image. The Kelpies pano was as staightforward as you could get, a simple 4+Z+N shooting pano, no need for bracketing as the dynamic range of the camera was sufficient, and not even exposure blending was required.
I’ll continue to dive into the back catalogue to see of there are any more unassembled panos waiting for their turn. Hopefully there are some undiscovered gems.
“The geometric location of the entrance pupil is the vertex of the camera’s angle of view and consequently its center of perspective, perspective point, view point, projection centre or no-parallax point. This point is important in panoramic photography, because the camera must be rotated around it in order to avoid parallax errors in the final, stitched panorama. Panoramic photographers often incorrectly refer to the entrance pupil as a nodal point, which is a different concept.”
Repeat after me, “It’s not the nodal point, it’s not the nodal point, it’s not the nodal point!”
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.