Jump to: navigation, search

Using Papywizard module


From the PapyWizard website:

Papywizard (Panoramic python Wizard) is a free panohead control software, mainly developed for the Merlin/Orion astronomic mount, but usable for other panoheads with small effort.

The project started on the Autopano forum, where someone has bring the idea to use an astronomic mount for panoramic shots.
The very low price of the Merlin/Orion mount made it the perfect candidate. The only things to do were an electronic interface, and a little software to drive it!

Papywizard is entirely written in python and developed under gnu/linux; it successfully runs on gnu/linux, Maemo (Nokia), Windows, MacOS and Openmoko.

Hardware needed

  • A tripod + a motorized panoramic head such as the Panogear.
  • A compatible camera (with a connector for the shootings).
  • A computer with Papywizard (which can also run on certain devices such as the Nokia 810/900 or Openmoko; see the Papywizard site for more information)).

Hardware setup

Please read the complete Panogear documentation.


  1. Position the tripod and adjust the bubble level if necessary.
  2. Install the motorized head on the tripod, then install the camera on the head.
  3. Plug the Bluetooth module into the head (if using Panogear).
  4. Plug one end of connector for taking the shots into head and the other into camera.
  5. Switch on the head.


  • Make sure that the combined weight of the camera and lens is not too heavy for the head.

Software installation

Example 1

After the head and Papywizard are set up, we can start shooting.

Shooting / Setting Papywizard

Configure the shooting. The camera/lens part is important because it allows PapyWizard to calculate how many horizontal and vertical images are needed.

Shooting configuration

In this example we will use a Canon 7D with a 15-85 mm lens set at 24 mm in portrait mode. The Canon 7D has sensor resolution of 18 Mpix.

Camera configuration

Once these adjustments have been made, we will configure the shot itself:
We only need to define 2 opposite corners of the shot (upper left + lower right). Move the head to define the first corner (upper left), then click on Corner 0. Do the same for the second corner (lower right), this time clicking on Corner 1.
Next, Papywizard calculates how many photos to take (in this example, 5 columns by two rows, or 10 photos)..

Framing Configuration

Now, just click on the Shot button, then click on Start. The head points itself to the first corner and begins shooting.


When the shoot is over, we can proceed to stitching the panorama..

Stitching via the Papywizard import module of Autopano

Click on the Autopano import button (or File/Import) and select the Papywizard import module. When the Papywizard module opens, specify the XML file generated by Papywizard and the related images.
Once these are authenticated, detection begins, and we get the following values:

Detection Values with Papywizard Importing

Advanced capabilities

Orphan images positioning

In this example, we will use a large panorama with 238 files taken from a shot of Grenoble to highlight PapyWizard’s capabilities when it comes to creating complex panoramas.
This shot was exposed for 1 hour and 17 minutes. Many elements (clouds, people) moved during the shoot.

Direct stitching

To start, we import our images directly into Autopano and launch the detection:

Direct detection

Detection worked well over all, but some images were not integrated into the panorama (portions of the sky and the trees).
Autopano did not detect control points between images (moving clouds, light, wind...). Therefore, this panorama can’t be directly stitched.

Stitching via the Papywizard import module of Autopano

Now we will use the PapyWizard import module. After detection, we get the following result:

Detection with Papywizard Importing

This time the RMS looks excellent: 2.73.

But if we edit the panorama and look more closely, the links between the images, the sky and the portion of the trees that were not assembled in direct mode are displayed in red:
These are orphan images, with no links to the images around them. They are placed here only because Papywizard forced their position.

Direct detection

That said, we can generate the panorama and get this result (image size 13GPix):

Panorama generated via Papywizard

The orphan images are visible on this panorama, since they could not be correctly positioned. Here are a few details from the sky that show some of the problems with the stitching:

Default 1
Default 2

Papywizard import mode without optimization

It’s interesting to try Papywizard’s import mode with the Ignore Optimization box checked. When you choose this option, Autopano will not launch optimization. The images will be positioned exactly at the point on the sphere specified by Papywizard.

Ignore Optimization

Let’s go back to our Grenoble example. After we check this option, detection is launched, and we get this:

Values without optimization

The resulting values correspond to the difference (in pixels) between Papywizard’s image positioning and the correspondence of the control points calculated by Autopano. These values are interesting for two reasons:

  • They give us a quantitative value for the accuracy of the combination of head + camera + Papywizard.
  • They also allow us to find a bad detection or wrong links between two images: If the RMS value between two adjacent images is very large, it may be that the control points detected by Autopano are incorrect (wrong links) because of similarities between the images (the windows on a building, or a solid color, like blue sky or very white snow...). If so, the user can manually adjust the control points in Autopano before starting the optimization.

Meanwhile, we can check that the images are correctly positioned on the Papywizard values in the Layer window:

Positioning images with Papywizard

Then we can launch optimization and get values equivalent to PapyWizard import mode with optimization: 2.80 RMS.

Values after optimization

Positioning was readjusted in the layer window after optimization:

Positioning images with Papywizard after optimization

XML-aware link filtering

In homogeneous parts like blue sky or fog our detector often finds some links which happen to be dust on the lens. These wrong links are not at odds with other image-contents information and cannot be cleaned without the use of image positions stored in the XML Papywizard file.

Example of a bad stitch resulting of many bad links between non-overlapping pictures due to lens dust

Using Papywizard import, wrong links are automatically cleaned thanks to XML data

XML data rectification

XML data contains the positions of the motorized head for each image. But what really need to be estimated during the stitching process is the position of the camera. These two data can be significantly different especially the pitch which is very often incorrect of up to ten degrees. Autopano is able to estimate accurately this gab and take it into account while positioning orphan images.


As these examples have shown, using Panogear in conjunction with Papywizard dramatically improves the stitched panoramas and makes it possible to position the images more precisely.

This difference is particularly visible on large panoramas (Grenoble example) and difficult ones. You do need to use a little more care and a little more hardware, but the end result is much better.

BACK TO: Documentation / Autopano Documentation