Everyone, who takes cylindrical and equirectangular panoramas, knows this situation: an interesting place was found, tripod and camera were carefully adjusted but your stitching application shows you nevertheless parallax errors. Dang, I still wasn't careful enough! is probably your first thought. And then, with a lot of effort and time, the images were corrected in Photoshop until they look like they should.
To me, this happened especially when I used fisheye lenses and objects were close to the camera position. After spending several evenings behind the screen, correcting images by painting masks and transforming bits and pieces, I started again asking myself, if I found the right nodal point for my lenses.
Most of the tutorials and how-to's on the net and in the press present you basically the same try-and-error approach, you're probably aware of:
Briefly, mount your camera on the panorama head on the tripod. Then target two vertical lines that overlap, one close to the tripod, and the other somewhere in the distance. Now turn the camera. If the lines stay perfectly overlapped in finder, you found the nodal point. Otherwise, move the camera along the center axis until these lines until you achieved this result.
This gets difficult, the wider the lenses are. Especially if you are using fisheye lenses of a fullframe camera, this becomes more a guesswork than proper measuring. You could circumvent this by shooting tethered to your computer - if your camera and software support this. But the true dilemma finding the nodal point still isn't solved.
What annoyed me most with this approach is, the nodal point is an attribute of the lens, and as such, independent from the camera used.
After some research on the web, I discovered a different method for users of cameras with detachable lenses. The basic idea behind is that you project a beam of light into the lens. The entrance point can be somewhere between the center of the lens and the rim. You adjust the beam until it becomes visible behind the lens. The nodal point then is hit. Normally, it will be somewhere behind the front element.
You only need a level with an integrated laser (you can get this for €10 in your next wal-mart), a piece of card board, a template with angles marked on to adjust the laser beam and something to attach a handmade scale (in my case, an evil laser beam destroyed a lego spaceship from my son to pieces). My setup looks like this:
For precise measurement, you need to calibrate the setup. First, align the center line of the lens with the center line of the template. Then align the center line of the scale with the center line of the lens and the 0 mm mark with the lens front. Project the laser beam along the center line through the lens. The laser beam should be spread that way, that you can observe a red spot on the scale above the lens, traversing the lens to the card board behind and on the bottom to your template. If the beam at the zero degree line on the template is in line with the beam that is projected atop of the lens and the dot through the lens, the setup is properly calibrated.
Now you can start measuring. First, you need to calculate the angle of incidence.
E.g. with my full frame fisheye lens (Canon 15mm with 90° view angle) on a full frame camera, I usually take 6 pictures horizontally to have ~30% of overlap. This gives me 60° of view angle. Now, I moved the level to the 30° mark (60° divided by…2) and adjusted the level until I observed the red dot behind the lens on the card board, which means that the nodal point was hit.
On the scale above the lens, you can measure the nodal point. That's it - reproducible for every camera you attach!
During the first test, I realized a surprising effect: The lens had no single fixed nodal point! Depending on the level of incidence, the nodal point was found at different positions along the scale.
This was also the explanation, why I always got parallax errors when patching zenith and nadir with the horizontally taken pictures - the blending angle for these images differs from the 60° mentioned above.
This fact became even more dramatic when I calibrated a Sigma 8mm fisheye. The nodal point at an angle of incidence close to 90° (= ~ 180° image angle) was almost at the tip of the glass element whereas at 30° (= 60° image angle), it was 10,5 mm behind the glass element.
|Nodal point depending upon angle of incidence|
|In the pictures below you can see the effect of the angle of incidence on the nodal point with a Sigma 8mm f3,5 fisheye lens. Nodal point was hit, as can be seen on the red dot on the card board behind the lens (left side).|
angle of incidence 30°
nodal point at 10,5 mm
angle of incidence 45°
nodal point at 9 mm
angle of incidence ~85°
nodal point at 2 mm
It got even more complicated with zoom lenses (e.g. Canon 16-35mm, f2.8 and Canon 24-105mm, f4) as can be seen in the table below.
Here you have a short overview of lenses with Canon EOS bayonet that were available to me. For zoom lenses I concentrated on ranges up to 35 mm. Nevertheless, I recommend you to perform your own tests.
|Focal length in mm||8||15||16||24||35|
|Image angle in portrait orientation||180||180||91||74||53||38|
|Approximated usable angle - 30% overlap||1201||902||60||45||36||24|
|usable angle / 2||60||45||30||22,5||17,5||12|
|Nodal point distance from lens front in mm|
|Sigma 8mm 1:3.5 Fisheye||9||10,5|
|Canon 15mm 1:2.8 Fisheye||19|
|Canon 16-35 mm Zoom||16||18||11|
|Canon 24mm TS-E||20|
|Canon 24-105mm Zoom||33||41|
13 pictures per panorama
24 pictures per panorama
I realized two major findings form these tests:
1. There is no single nodal point for a lens. Depending upon your shooting style, i.e.usable angle coming from portrait/ landscape orientation, shooting zenith & nadir, you will have to find the right nodal point.
2. This test method gives you more reliable results than the classical try-and-error method. If you have a panorama head with mm-scale, you can re-create excellent results.
If you shoot panoramas regularly, the effort for this testing will pay back very soon and save you evenings spent in front of the screen.