• Subscribe

    Subscribe to This Week In Panospace by eMail.
    Subscribe in a reader
  • License

    Creative Commons License
    This work is © 2008-2012
    by Yuval Levy
    and licensed under a
    Creative Commons License.
  • Entries

    June 2018
    M T W T F S S
    « Dec    
  • Archives

Hugin-2009.2.0_beta 4 Released

hugin-logoI just released Hugin-2009.2.0_beta4. This is likely to be the last beta in the current cycle. A release candidate is likely to follow soon.

In case you’re wondering about the version number: we’ve decided that a 0.x version number does not reflect well the status of Hugin. A 0.x version number is associated with new/untested/unfinished prototypes. Hugin has long passed that stage. It is very stable and finished enough to be recommended for the general public. It is evolving rapidly, though. So instead of dealing with the major/minor version uptick, we decided that the major version is the release year and the minor version is a sequence number, with odd numbers representing development versions and even numbers representing releases. Since this is the second release in 2009 (after 0.8.0), it is called 2009.2.0.

The highlights:

  • GPU accelerated stitching. Highly experimental. Activate from Files -> Preferences -> Stitching. Depends on a combination of hardware, driver, input images and other factors. Details will be posted in the Hugin FAQ.
  • Improved Preferences panel (Control Point Detectors), with user friendly presets for the most popular choices.
  • Improved control of stitching process (Stitcher tab). Hugin now features an additional Exposure fusion -> Blended and fused panorama output option, useful when it is not possible to keep exposure and white balance constant between shots.
  • Fast Preview shows control points connected with lines – the longest the line the worse the quality (except for vertical and horizontal control lines).
  • Streamlined support for libpano. Libpano13 is now required. Discontinued support for legacy libpano12.
  • Improved build system / support for different platforms.
  • Lots of bugfixes.

I hope we can get the final 2009.2.0 out before the end of the month so that we can continue focus on the next release, which will include the new feature that has been merged into trunk: a lens calibration tool, Google Summer of Code project by Tim Nugent, mentored by Tom Sharpless.

Bend to Please


equirectangular 360°

Earlier this year I used the above full spherical panorama to test the new projections as they were added to libpano. You can view it from the inside here.

Those new projections devised by Tom, Bruno and Daniel, were not all. In his quest to satisfy our sense of what the world really looks like without being limited by the narrow field of view of the traditional rectilinear perspective, Tom Sharpless asked for permission to modify and use the image. A few weeks later he came up with a real WOW! He is currently working on implementing this and more into his Panini Perspective Tool.

Tom was meant to discuss his work at LGM but prior commitments and the lack of a teleporting facility makes it impossible for him to attend. We agreed that I will present his slides, and host a discussion on Panoramic Perspective Control. The main idea: use of panoramic photography techniques, coupled with computing, to achieve new images that break out of the physical boundaries set by traditional optics and appeal to the human sense of aesthetics.

As part of the talk, I’ll show how I followed into Tom’s footsteps and produced the image below.

PVsqueezed to be optically pleasant.


You will need

  • Tom’s Panini Perspective Tool, or if you want to do this in high resolution a recent (2009) version of Hugin.
  • A recent version of the GIMP. I had to build 2.6.x on my own box until Ubuntu 9.04 came along. Building the GIMP from code is not trivial but relatively well documented around the web.
  • A recent version of MathMap. Unfortunately MathMap is not yet packaged with Ubuntu. The 1.3.4 tarball will do. To my knowledge, nobody has got MathMap to work on Windows yet.
  • Tom’s PVSqueeze.mm script. Put it in the appropriate MathMap folder or copy&paste it into the “Expression” tab.

Process240° x 150° equirectangular pannini

  1. As so often, we start from an equirectangular image, the universal panorama format.
  2. Load the equirectangular in Hugin and extract an Equirectangular Pannini view of the area of interest. The flexibility of extracting an Equirectangular Pannini view is higher in Panini, but Panini’s resolution is limited by the video card’s memory. Hugin can do higher resolutions but has the disadvantage that the eye distance (horizontal compression) in libpano is fixed (patch, anyone?)
  3. Load the perspective into the GIMP.
  4. From the GIMP menu, open the Filter MathMap.
  5. Load the PVSqueeze filter.
  6. Click Preview to see the low-resolution live image.
  7. In MathMap’s User Values tab, adjust the values and see the live image morph until you like it.


From MathMap’s homepage: “MathMap is a GIMP plug-in which allows distortion of images specified in a simple programming language. For each pixel in the generated image, a script is evaluated which returns a color value. The script can either refer to a pixel in the source image or can generate colors completely independent of the source.” MathMap’s is a project of Mark Probst.


Using Tom’s PVSqueeze filter:

  1. Set the horizontal field of view (hfov) and eye distance (eyeDist) sliders roughly right for your input image.
  2. Adjust the vanishing point (VP) position (VPX, VPY), and the slopes of the 4 perspective edges (XXangl) so they line up with the appropriate edges in your image. There aren’t any drawn lines, but the change of image shape is pretty easy to see. Note you have to set the projection center Y identical to the VP Y by hand, or you get a black triangle in the middle (bug; but misaligning them can help you see just where the VP is).
  3. Adjust the shift modifiers for the upper and lower Vees to suit.  Basically these swing the pixel shift direction between straight up and down — which preserves verticals like chair legs — and radial with regard to the VP — which makes most floor patterns look nicer but also creates the curved diverging lines. The shift direction varies with vertical position, from vertical at the VP to radial farther out.  XVlim controls the vertical level at which this transition starts, and XTwid the width of the transition zone.  You can set them for pure vertical or pure radial shift, or some blend.
  4. Hit OK, review the full size result in the Gimp window; save or go back and adjust some more.


So we used some smart math and arbitrary parameters to bend a captured panoramic image to please our taste. In doing this, we connected back to the Renaissance tradition of perspective on a mathematical basis. The resulting high-resolution picture is currently being printed on canvas to be displayed at the Ultra Wide Views exhibition that opens May 6 in Montréal, Canada. At Libre Graphics Meeting I will show more detail and I hope we can discuss how to classify the different projection types and make them more accessible to graphic artists.

Accepted Students for Google Summer of Code 2009

MascotteThe dice have rolled. For the third year in a row the Hugin community will mentor five Google Summer of Code students as they go about writing free software:

  • James Legg of Fast Preview fame will tackle the Layout Panorama Model mentored by Bruno Postle, improving the handling of stacks.
  • Tim Nugent of Celeste fame will tackle Straight Line Detection for Lens Calibration mentored by Tom Sharpless, improving the handling of fisheye lenses.
  • Lukáš Jirkovský, too young in 2008, has become a significant contributor to our community over the past year and will tackle Ghost Removal for Enfuse, mentored by Andrew Mihal.
  • Dev Ghosh will add Mosaic Mode to Hugin/Panotools, mentored by Daniel German.
  • Last but not least Yulia Kotseruba will add functionality like multiple blending to Lighttwist, mentored by Sébastien Roy.

I am particularly proud of the collaboration with Sébastien Roy on Lighttwist. First, because I believe there is a cultural fit between his Vision3D laboratory and the Hugin community. Second, because it is good to see academics releasing the result of their research (which, let’s not forget, is often funded with public taxpayer’s money) to the general public under an Open Source license.  And last but not least, because I think that Lighttwist is the natural extension to Hugin. I would dare to advance that Lighttwist is to panoramic photography in 2009 what QuickTimeVR was to it in 1999. In a private email exchange Ken Turkowski, inventor of QuickTimeVR and one of our team, acknowledge the analogy.

Then there is a sixth project that I care about. We have teamed up once again (and we hope to be luckier this time) with VideoLAN to bring QTVR playback to this popular media player. This time with an extra bonus: Wiimote control. León Moctezuma, who in 2007 added SPi-V playback to FreePV, will build on his expertise of FreePV and add the Wiimote on top of it, mentored by Antoine Cellerier of VideoLAN.

What’s next for the students? this article I wrote exactly one year ago applies.

Good Luck, students, I hope to congratulate you all in a few months.

Windows Installer

Three weeks after the release of Hugin 0.7.0 a binary installer is available on Sourceforge. Why such a delay?

Somebody with the necessary skills only needs a few hours for the task, and somebody with the will to learn them maybe a couple of (part time) days more. I offered to coach whoever steps up to the challenge, but I refused to do it myself because I believe in proper succession planning and in the need to groom the next generation of contributors.

Succession planning means making provisions for the future. For what will happens after we’ve left. Because we all leave, sooner or later.

For an Open Source project to survive beyond the current generation of contributors, the project needs two things: know-how transfer and a pool of new potential contributors to step up to the task.

Know-how transfer comes from the people who currently hold the know-how. It comes in the form of documentation. In Hugin’s case, I’ve made a push over the past year and with the help of many community contributors we got the build process documented, also for Windows. And for the installer, I’ve committed the instructions into SVN. We are ready for know how transfer. Are you ready?

Potential contributors… that’s you! Yes you, don’t turn your head the other way. The tools required are available as a free download, and the instructions are simple enough for any literate person that can type on a keyboard, click on a mouse, and has access to a PC with 2GB RAM – about what it takes to stitch a full spherical panorama. There are no excuses. If you feel the windows installer was delayed, look in the mirror.

In the end, two people that were already contributing to the project stepped up to the task. I could transfer the know-how to Tom Sharpless and Guido Kohlmeyer. Eventually Guido’s installer made it to the official repository.

I am disappointed. Of more than 35.000 Windows users who have downloaded and installed my hugin installers from this site over the past ten months nobody had the decency to step in and contribute something back to the project?

Almost ready

Two weeks ago Bruno initiated the next round of clean up. He went through the massive task of reviewing each and every pending bug, cleaning out many outdated or duplicate reports. He brought the list down to 82 bug reports.

There are feelings in the wider community that the current hugin is ready for a release, so what do we need?

A small informal discussion unfolded off-list amongst developers, debuggers and builders. The consensus is that we need to stay focused on the bug tracker, group the bugs into manageable clusters and address them in a relatively fast series of incremental releases.

Bruno assigned to the 0.7.0 category those bugs that need to be fixed now for the release, leaving the rest for later. His approach, supported by everybody, is that we should prioritize for the upcoming release those bugs that lead to crashes, and then those that lead to many support requests.

Gerry started working through the bugs. His practical approach already yielded a few quick fixes, and he is introducing sanity checks to prevent some of the reported crashes. Pablo has been busy making the control point list more responsive and ensuring the code base builds with different versions of wxWidgets on the many supported platforms.

Harry refined his documentation of the OSX builds and Michael Galloway reproduced the build.

On the Windows side I have been slacking with the builds but Guido and Tom have been relentlessly releasing binaries to testers.

I have submitted a patch with two simple improvements to enfuse / enblend. The patch has not made it yet into SVN. I may include it in my next installer. The two improvements affect details of the pyramid blending – specifically the resolution of the last step of the pyramid and the number of levels used in the pyramid blending, both requested by Erik Krause.

Somewhat, the moving target has become too comfortable. From my perspective hugin works well enough. The installers I have been publishing here in the past three months met the quality requirements for a release, especially when compared with what I see released from other open source projects and even from commercial entities. But there is no question: we need to get an official release out soon.

another round of installers

Harry released Hugin SVN2797 and Enblend/Enfuse CVS20080207 for OSX a few hours ago.

It took me slightly longer. Timezone difference. And I was still experimenting with some installer options. Here are my Hugin SVN2801 and Enblend/Enfuse CVS20080207 for Windows.

New for Windows:

  • many bugfixes (but there are more to come), thanks to Pablo d’Angelo, Andrew Mihal, Ippei Ukai and others
  • a new enfuse droplet by Erik Krause
  • a choice of three different ways to run autopano: APSC by Tom Sharpless, autopano-c-complete.exe in Perl by Bruno Postle, and autopano-c-complete.vbs improved by Tom Sharpless.
  • experimental in this installer: some default settings. only the settings for the autopano are concerned at the moment, but if the experiments works well, default settings will be part of the installer. Please let me know what your favorite settings are.
  • Better compression – the installer is now more than 50% smaller (9MB).
  • a standalone Enblend/Enfuse installer. This is a quick derivate of the Hugin installer and will evolve over the next iteration to a more specific installer.

Download links in the tester section of the download page.

It’s a perl

Last week I released an experimental VBS script to help run autopano in Windows.

It was subsequently improved by other Windows Hugin user, notably Pete Holzmann and Tom Sharpless, but was still inferior to the shell script available to Linux and OSX users.

Bruno Postle came up with a Perl replacement, and a compiled Perl for Windows to compensate for the lack of the scripting engine on that platform.

Tom Sharpless did it in C.

I’m happy to see my recent VBS code becoming obsolete very quickly. I prefer languages that are portable to multiple platforms. Will it be C, or will it be Perl? One thing seems to be sure: autopano-SIFT-C will be part of the upcoming hugin release.