An alternate method, based on capturing a rotating vertical scanline, and then letting some software do all the job, has been in my head since about two years.
Having received a whole set of Fischertechnik (2) components helped me decide to experiment it, just for the sake of verifying the idea.
Then, although the whole is still a work in progress, the results are so good that I wanted to share them with you. It has room for many improvements to increase resolution and usability, but it basically works pretty well.
Read on, make one, and show your results!
(1) In short, I have much more interest in spending time engineering something (that can later be effortlessly reused), rather than tediously executing manual work.
(2) Fischertechnik is to mechanic what breadboard is to electronic --Well it's more than just that, but you get the idea.
Step 1: The Idea
A movie consists of a succession of pictures shot rapidly (30 per second). We will only consider the vertical central line (1 pixel thick), that we'll call the scanline. When slowly rotating the camera, each frame will be like the last one, but very slightly shifted. So the scanline will sweep the whole scene.
Being in the center of the frame, the scanline will have no lateral barrel distortion. The scanline will also be very well horizontally aligned (relative to the rotation axis).
In order to collect more vertical pixels (i.e. to have a taller scanline, hence a higher vertical resolution), the camera is rotated by 90°. This rotation will have to be taken into account during the post-processing.
In summary, there are two phases:
- Capture: The first part consists of shooting the movie in slow and continuous rotation. It only needs a camera able to shoot video clips, and a motorized rotating mount.
- Post-processing: The second part needs a computer program. It consists of extracting the central column of pixels (corresponding to the scanline) from each movie frame, and stitching them together to form the panorama image.
Enough theory, now let's test this principle
So if you want to experiment too, you must be (for now) familiar with computer command-line tools:
- the installation of command-line tools,
- the operation of command-line tools,
- the edition of script files, to tweak some parameters.
Tested on Linux (Ububtu) and Mac OSX so far.
But, upon popular request, I may write a user-friendly program that anybody can user.