Production of QTVR Movies


Once the photographs have been taken, they must be converted into Quicktime VR format. This process has a number of stages, the first of which is scanning the photographs into your computer.

For this, we used a Nikon colour negative scanner connected to a 486 PC running Windows 3.1 and Adobe Photoshop with TWAIN scanner drivers.

Some modification of the brightness, contrast and colour balance was carried out at this stage to correct obvious deficiencies in the image quality. Further steps to correct problems can also be taken later on in the process. However, it is advantageous to make some alterations at this point since the software tools used to convert the photographs into a single panorama rely on the images being of sufficiently high clarity

When scanning, it is important that as much of the negative/photograph as possible is scanned in and that it is done in a consistent manner. Differences in y-offset will create difficulties later on and require you to control the software manually.

Once we had scanned the images into the PC, we needed to transfer them to our Macintosh, on which the QTVR authoring tools run. This was achieved by first moving them to Darkstar, our Linux fileserver, and then from there onto the Mac's hard disc.

The QTVR software requires the images to be in PICT format and to be of a particular size. We decided this work would be better done on our own Macintosh since although common changes to the brightness, contrast and colour balance of images can easily be accomplished on the computer doing the scanning with little increase in overheads, rescaling and cropping each image is time consuming and the scanner needed to be used by other people.

Unfortunately this caused some problems, since our Mac version of Adobe Photoshop refused to read the PICT files created by the PC version of Adobe Photoshop. To get around this, we exported the images from the scanner in TIFF format (Mac byte order) and then converted them back to PICT format on our Macintosh.

This allowed us to modify the images at our leisure, cropping them to remove white edges and scaling them to 768 pixels high. The images had to be cropped to the same size before rescaling, since otherwise, although they would all be 768 pixels high, they would cover different physical areas of the original photographs.

The purpose behind all these operations was to prepare the images for stitching. The Stitcher program takes individual photographs and blends them together to form a panoramic scene. The program not only matches up the edges of the photographs, but also warps them in order to blend them smoothly into each other.

The stitcher requires some experimentation in order to get it to work, and would probably run more happily if our Mac had more memory (currently 32MB). There are many different parameters that can be set, allowing the Stitcher to handle such tasks as cropping and rotating itself, if you so desire.

The best way to explain how the stitcher works to give an example of a stitch command we used to produce one of the panoramas from our laboratory:

Stitch-verbose
-blend
-fovy 60
-i
-rotate -1
-cyldim 940 7000
-wrap
-offset 280 0
-range 20 20
-cropOut
-show
-dir "Macintosh HD:Lab:Photos:01"
-files "01-15"
-out "Macintosh HD:Lab:Source Picts:Lab.01.srcPict"
-sharpen

Here is an explanation of each of the options:

-verbose
This generates some output from the program so that you can see which image is being processed and the computer's estimates as to where it will make the best possible join with the previous image(s).
-blend
This option results in the sticher blending the edges of the pictures together in order to hide the join. Particularly useful where the exposure or colour balance on two consecutive photographs is slightly different.
-fovy 60
This option tells the stitcher about the vertical field of view in each image. It is dependent on the type of lens (eg. this setting is for our 28mm lens) and allows the stitcher to work out by how much each image needs to be curved to fit in which the others in a smooth panorama.
-i

Interactive.This allows you to manually adjust each image as it is read in and stitched onto the previous image or images. For example, you can move the new image along x and y axes, rotate the image, or expand or contract its left edge. Alternatively, if the computer has already made a perfect match you can just accept its calculations by hitting the Enter key.

Another useful feature is the ability to abort a stitching operation if the approximate information which you originally supplied about where to make a join between images was hopelessly inaccurate.

-rotate -1
Rotates each image by the number of degrees specified. Use this to correct any errors caused by the camera not being quite level. Otherwise, the stitched output will step up or down by a couple of pixels with each image like this:

The result is that the panorama won't wrap round since the left edge can not be matched vertically with the right edge.

-cyldim 940 7000
This gives the stitcher its 'working area'. Sometimes the estimated one is too small and the stitch aborts because there simply isn't room to add another image. Increasing the dimensions increases memory usage.
-wrap
Specifies that the output is a full, 360° panorama and that the first image should be stitched onto the last one.
-offset 280 0
This gives the Stitcher a rough estimate of where to try and place each new image in relation to the previous one. An estimate can be worked out in Adobe Photoshop by loading in two images and selecting only the area in the first that does not overlap with the second.
-range 20 20
This specifies the accuracy of the -offset estimate. For example here the Stitcher will try and add new images at x: +260 to +300, y: -20 to +20 pixels from the previous one.
-cropOut
Removes the black empty spaces around the stitched output caused by variations in the y offset.
-show
Instructs the stitcher to display a window showing the stitched output as it is generated.
-dir "Macintosh HD:Lab:Photos:01"
Specifies the path of the source images.
-files "01-15"
Specifies a range of file names. eg. here, files 01, 02, 03, 04 .... 13, 14 and 15 will be stitched together in that order. It can also run backwards (eg. "15-01") if you named your images in the opposite order.
-out "Macintosh HD:Lab:Source Picts:Lab.01.srcPict"
Specifies the path and filename of the final output.
-sharpen
Sharpens the output after the stitching is completed.


© Copyright 1997 Oxford University