A Snapshot Of Time
Tuesday, April 14th, 2009About a year and a half ago I discovered a photography technique published in dpchallenge.com which involves taking a 360 degrees panoramic image and converting it to polar coordinates, which if conducted properly results in a globe like image of the original scenery.
The technique is thoroughly explained in the dpchallenge article, so I won’t go into explaining how it works, but I would like to point out some of the pitfalls I discovered during my attempts and talk about my own experimentation with it.
Almost immediately after reading about it I went out and tested it in a city square near my home, it was a good place for the test since it is slightly elevated, surrounded by tall buildings and has mostly a uniform floor texture (important for a smooth looking center).
The result was really amazing and I was both impressed by the (relative) simplicity of this concept and simultaneously staggered by the complexity of executing it in real life.
You have to deal with location selection, timing the shoot, executing the shoot in steady intervals - producing hundreds of shots, filtering them later on against duplicates, resizing them for post processing, stitching them – which is probably the most time and nerve consuming part of them all, fixing stitching errors, converting to polar coordinates and performing the correct amount of warping and finally retouching levels, colors and the usual image refinements.
(City Square final. Click to enlarge or download full resolution)
The above image took an hour to shoot, is composed of about 200 images (after filtering duplicates), around 6 hours of stitching CPU time (including the failures) and a day or two of post processing.
And below is the panoramic un-polarized image.
(City Square panorama. Click to enlarge or download full resolution)
It seems as tough the buildings are far away, as if it’s a wide panoramic photo of some building in a row, but in fact they are about 20 meters away in every direction and completely surrounding me in 360 degrees, the image contains vast portions of the ground beneath my feet and sky above my head, so the proportions are way off.
But it doesn’t stop there. About a year ago I was thinking of doing another photo project, with similar interest, but with a different twist. The idea I came up with was to do the the same 360-polar-panoramic view, but with time intervals. That is – each time I take a vertical strip of the panorama, it would be at a different time of the day, more precisely in 1-hour intervals !
At first I was a bit deterred by the idea, which seemed impractical to execute, but when I was on vocation for a few days I decided to give it a ‘shot’. The location chosen was right beside my home so that I could easily access it at any hour of the day – it is a public park area with a round fountain in it’s center which has an accessible dry section on top. After checking it out I also notices that the design of the entire park is radial from the center of this fountain, which is perfect for such a shot. I also knew that taking each shot in exactly the right angle is crucial in order for the sequence to blend naturally, so I bought a simple compass (shame on me for not having one already) and calculated that every hour is a 15 degrees pie from the circle. Then I chose the starting point and the time at which to start shooting – this choice is also crucial since it defines the distribution of light in the photo. I decided to go with the buildings half in day and half in night for the contrast.
After all these preparations it was time to shoot. I Set the clock to 10 minutes to 6 and took the first strip at 6:00am. Then I went back home, set the clock to 10 to 7, had a cup of tea, and took the next strip at 7:00am. This went on for the entire day. Of course this setup requires me to go a full 24 hours of none or little sleep, so I decided that the shot will still be valid even if taken on separate days, and completed the next day the missing strips for the hours I was dead asleep.
After I had all strips, I went through them, played a little with mock stitching (small number of photos, small size) and realized some of the strips had an off timing, or had inconsistent lighting. So the third day already, I go out, exactly at the right hours, reshot the bad strips.
Next was the daunting task of putting it all together. The thought of it alone was enough to scare me away, and in a sense it actually did, since from the date of shooting the photos till completing all the processing today, 10 months have passed.
There is another thing I forgot to mention regarding the concept/setup – Unlike my first attempt, I decided to make a photo with people in it, doing whatever they do in that particular hour. I believed it would better portray the time shift along the image. But since people move (naturally) and panoramic photography prefers the scenery to stay still, this presented an added challenge, but one I was aware of during the shoot. So in fact, I had to take almost double the amount the photos at each strip – without people, to compose a correct panoramic shot, and with the people, to later on be appended on top of the panorama precisely in their original locations, and precisely in the correct distortion (created by the stitching). Since stitching with the people wasn’t an option, all this had to be done manually, excruciatingly slowly, in Photoshop.
But long before that pleasure, the photos had to be screened, selected, divided into groups of strips, with and without people and most important of all – Stitched.
At this point I’m talking of about 300 photos, each strip with different lighting, and apparently (as I discovered only in retrospective) with too much overlap between the photos. A 50mm lens in my camera gives about a 75 degree Field-Of-View, considering the fact that I moved the camera 15 degrees at each strip it results in about 80% overlap between the photos, while the recommended overlap for a good stitch is 20% ! This miscalculation didn’t give me an easy time at all. The software of my choice for stitching was AutoStitch. It has proven it’s worth before, and truthfully – I tried every program I could find online for this mega stitch, and none of them came close to succeeding in the task. Even AutoStitch has it rough - so many photos, with such variations in lighting and way too much overlap was really pushing the boundaries when it comes to stitching.
First problem – Size, using the photos in their original resolution was not an options, AutoStitch would constantly halt with out of memory errors during the stitch. Against my will I had to reduce the resolution, knowing that it would hurt the final result, but it was a choice between that and a deal breaker.
Second problem – Time, a stitch of 300 photos takes a lot of time, on a Pentium 4 2.4 GHz computer, it takes between 40 minutes to 2,3 hours to make a full stitch. That’s a few hours for each stitch attempt, and there were plenty I assure you. I used my own and my parents’ computers to achieve this, and it still took days.
Third problem – Success, for the project to actually succeed, I had to have a successful stitch of all the photos together, but AutoStitch, despite many attempts just couldn’t handle all the images together and would fail to stitch too many of them, resulting in distorted outcomes or partial stitches. I thought for a while to try doing it all manually in Photoshop. After a short 1 hour attempt I laughed in my own face and went on with plan C - begging AutoStitch to work. At last, I convinced it, or one might say – it convinced me, to do the stitching in sections, and then stitch those sections together. The best result I could come up with was two sections, each consisting of about a dozen stripes fully stitched from ground to sky with almost no deformities. Satisfied with this result, I went on to stitching them together in Photoshop, using every distortion tool I know of to perform this task, on top of that, I forced myself to work with the full resolution outputs from AutoStitch, a whopping 16,000×7,000 and 11,000×3,500 images. My 1GB of RAM computer really didn’t think well of it. I had to kill every non system crucial process, increase the virtual memory to several times that of my RAM and set the history depth of Photoshop to 1 (!) so that it wont take unnecessary memory, this virtually took any undo capabilities away. Many (MANY) hours later, I finally had a fully stitched photo of all the strips, looking somewhat naturally, but at a closer look there were dozens if not hundreds of defects in the stitch, and a few spatial distortions in the manual stitch I did with the sections. I had to play around with the photo for many more hours fixing all these imperfections until I was sufficiently satisfied with the result:
(Full panorama void of people. Click to enlarge or download full resolution)
Next stage was to bring life to the image by adding back the people on top of the panorama. This was as much a composition challenge as it was a technical layering and adjusting challenge. I tried to pick the shots that best portrayed the scene as I experienced it while shooting, so that a quick glance at every part of the photo would feel the same as if you were there during that hour.
(Full panorama with people. In this image the timeline is shifted, though it doesn’t really matter in a full 360 panorama. You can also see the difference in length between daylight and night. Click to enlarge or download full resolution)
After completing this stage I had a complete image, good enough by itself but not yet the final product of the project. To complete the polarization of the image I had to once again push the limits of my computer with the overwhelming task of converting the 9991×4300 resolution image from Cartesian to polar coordinates. After much struggle I was able to create the 9991×9991 polarized image. During the process I also discovered that Photoshop has an inherit fault in memory consumption, where it allocated memory both for the processing and previewing of the processing when using a filter. If you simply apply the filter on a smaller image and then re-apply the last filter on the larger image, it will use much less memory.
The final stages of the processing were to create proper looking proportions of the various objects in the scene using a combination of positive and negative pinching, some cloning and healing of missing portions of the sky, cropping and last but not least – a final levels adjustment.
(A Snapshot Of Time – final result. Click to enlarge or download full resolution)
In a not so short story – that’s pretty much it. I had loads of fun doing this project, and learned plenty more.
Feel free to use the full resolution images for what ever needs, just make sure to give credit.



