)) or an image editor to correct small imperfections in an image,
* preferentially know how to use a command line,
* preferentially have the recommended equipment.
====== About the author ======
Electronic engineer, graduated in 1995 in UFRJ((UFRJ - Universidade Federal do Rio de Janeiro, Brazil - http://www.ufrj.br/)). Have worked for around 15 years with Unix, mainly with FreeBSD but also Solaris, Tru64, Linux and others. Experienced in free and open source software, IT infra-structure, network management, system development and project management. Organized the BSDCon Brazil in 2003, created the “BSD em Revista”, the first magazine dedicated to BSD in Portuguese and the news site http://www.myfreebsd.com.br
(not online anymore). Organized and taught in FreeBSD courses. Studied photography at school in 1985. Built amplifiers, tripods, home made cameras and so on. Make panoramic pictures since 2002 and got specialized in 2010. Keep a blog of immersive pictures((My 360 pictures blog - http://cartola.org/360)) and the first open forum in Portuguese, the Panoforum((Panoforum - the first open forum in portuguese dedicated to panoramic photography - http://www.panoforum.com.br/)).
====== A General View ======
If you like photography and have a hack spirit, as almost every BSD enthusiast, you probably have already tried to join two or three pictures together to make a panoramic image. If you haven't yet you probably can guess that this is possible, don't you? What about Google Street View, do you know it?
Well, anyone can guess what is a panoramic image. One possible definition is that it is a picture that extends the lens or the human eye field of view. The most accepted is that it is a question of the field of view degrees, but sometimes it is hard to discover the angle used in a ready made picture, so we finish with the image aspect. Probably it is ok to call any picture with an aspect of 2:1, or wider, a panoramic photo. Most of the times it is achieved by joining pictures together to make a new one with a wider coverage angle. The “immersive” or “360×180°” or “full sphere” or “spherical panorama” is the panoramic picture that extends this to the wider possible angle, covering all visible areas, as shown in Figure 2.
To see a full sphere picture you will need a specific software or the image will have some distorted parts. The best way to look at them is interactively, in a computer or any other device, preferentially with a big screen. These pictures are usually not very much adequated for printing, although you can convert them to some projections that are better for that, like the equirectangular or stereographic. This last is also called “little planet” in an allusion to the classic “The Little Prince”. Figure 1 shows an image in a stereographic projection.
After this little introduction it is a good idea to have an immersive experience. Follows some links where you can see some of these pictures, and these is only a very small list of them:
* http://www.cartola.org/360/ - my blog, where I post the images I make and some how-to's. As my native language is Portuguese, there will probably have always more posts in this language than in English. Sorry for that,
* http://www.360cities.net/
- 360×180° pictures community with pictures from all over the world,
* http://www.airpano.net/ - spectacular gallery from a non commercial group of Russian photographers.
Try to experiment everything, clicking and dragging to every side, up and down too, making zoom in and out and so on. Most of the people get really impressed and a good amount gets astonished with this kind of photography, mainly when it is made with high quality. Google street view doesn't care about perfect quality and even this way their images cause a good impression. The possibility to have a point of view as if we were in the place and be able to chose what to look at is really amazing, isn't it?
Google Street View is available from the Google Maps((Google Maps, where you can find Google Street View - http://maps.google.com/)) system but they have not shot everywhere yet. Small cities and countries might not have it. With it you can discover the place without going there physically. Try to see some streets in New York, Rio de Janeiro, London or Tokio. It is totally amazing. Probably every BSD user already know how to use it, but anyway, you need to put the map over where you want, click and drag the orange little guy figure over the zoom rule on the left side and release the mouse button when the guy is over some street. The streets with street view available will turn to blue when you start dragging the orange guy. You will need flash plugin to see this.
By now you can probably imagine all the possibilities of this images: hotel sites, tourism, realstate, restaurants, parks, … Any enterprise or individual that want to show any place can take advantage of this. Even those crazy guys that only what to keep a family memory. Do you think it can be made totally with free software? Surely!
The free softwares available to make panoramic images have existed for some time. Hugin, the main free software I use to stitch my photos, has its first files at sourceforce dated from 2003. And he is only a GUI to other tools, like PanoTools, that already exist before that. The German physician and mathematician Dr. Helmut Dersch has began to make PanoTools in 1998. In 2004 I have made the first Hugin and its dependencies ports to FreeBSD. In 2000 I have participated in a project to build an Internet Brazilian tourism portal that used 360º images to present hotels. It was a big news at that time, but the picture qualities were much poorer than today and also the computer and Internet capacities were inferior, so it was difficult to make higher resolution images. Nowadays it is possible to make images with very high resolution and commercial quality using only free software.
So let’s start talking about the process and free software tools that can be used to make such images. I have already made some speeches and workshops and I usually like to split the process into steps, like this:
* Shooting
* Joining images (stitching)
* Post editing - to correct possible joining imperfections
* Publishing
Each step has its own details and secrets to achieve a good result at the end and I will try to talk a little about each. Before that, however, let me try to show you a simpler process to mount a partial panorama with just a few images.
====== Mounting a simple panorama ======
For a beginner it is surely easier to start mounting a partial panorama. For that you just need some images taken with some overlap between them, like 30 to 50% for example. There is no need of specific cares about the way you shoot and probably also won't have no need of post editing.
Hugin site has a very good English tutorial on it((Hugin tutorial on stitching two pictures together - http://hugin.sourceforge.net/tutorials/two-photos/en.shtml)). By doing this step one can have a first contact with the tool and start recognizing it's menus and tabs. The good aspect of the tutorial is that it teaches you how to do the steps manually. It is not so important when stitching just two pictures, but can be necessary to join a full sphere panorama, so it is a good way to start learning to do a full sphere.
====== Mounting a complete panorama - Step 1. Shooting ======
First of all we need to take the pictures (obviously). It is possible to use any camera to do a spherical panorama, but it is highly recommended that it has “Manual Mode” and that you use a panoramic tripod head in a tripod. It is also possible to make it not using all this, but it can put the newbie in such a difficult situation that he might give up without been able to finish his first panorama. Without the manual mode the color and luminosity difference between images will be very difficult to solve, although yet possible. One will also have a hard time to correct parallax errors without using an adequated tripod head. Nevertheless, my very first stitch had all this problems – and it never had a good final quality. It is shown in Figure 4. It has been made with a common point and shoot camera (Olympus C-120) using a common tripod and automatic mode. I have made 42 pictures to cover the full sphere. It is easy to see each original picture in the final stitched image.
For the beginners I strongly recommend making the previous step, mounting a simple panorama to get used with Hugin. Patience will certainly be of great value in your learning journey, cause mounting a complete sphere panorama can take some time. If you are going to try to shoot without a tripod, some important tips are:
* turn using the machine as the rotation axis and not you, as shown in Figure 5,
* overlap image pairs using a more or less 30% (1/3) factor,
* choose a scene with less “human lines” or “expected lines”: prefer abstract nature than city,
* choose a scene with the subject as far as possible.
Those tips will make your first try much easier. Using a tripod would make it easy? Yes, but the best would be using a tripod with an appropriated head for panoramic shooting. Rotate the camera around the No Parallax Point makes a huge difference in the stitching step and it can be made using this tripod head I mentioned.
There are many models of panoramic tripod heads and you can even make your own one at home. There is a page in the Panotools Wiki((Panoramic Tripod Heads - http://wiki.panotools.org/Heads)) that shows many commercial models of them and also many home made ones in the section called “Self Made”.
But who in hell is this guy called No Parallax Point? Even if you can't buy or make your own panoramic head, it can help a lot if you know where he is. This will decrease the perspective errors, usually called parallax errors, making it easy to stitch and decreasing the need for post editing.
===== No Parallax Point =====
In a few words it is the point that, if used as the axis for rotating the camera, won't cause any perspective errors between the objects in the scene. Usually it is located in front of the camera, many times in the middle of the lens. In Figures 9 and 10 we can see some examples of panoramic tripod head being used to turn the camera using the no parallax point (NPP).
The No Parallax Point is sometimes confused((Photography misconceptions: nodal point - http://toothwalker.org/optics/misconceptions.html#m6)) with the Nodal Point((Nodal Point - http://en.wikipedia.org/wiki/Nodal_point#Nodal_points)), which is an optical concept and not necessarily is the same point where one would be able to shoot pictures with no parallax errors((Paper about the pivot point - http://web.archive.org/web/20060513074042/http://doug.kerr.home.att.net/pumpkin/Pivot_Point.pdf)). Well, what I want to tell you here is that there is one special point where you can put the rotation axis of the camera and this way you will be able to take pictures rotating the cameras and have no parallax problems. And what is a parallax problem?
| | |
Between Figures 6 and 7 it is possible to see a parallax problem. Notice how the big difference of position between elements like the island and the window, the buildings and the window and so on. An object that was behind the other can be seen in the next picture. The relative position between objects changes as we rotate. The resulting image will have probably some problems. In Figure 8 I tried to joing the two pictures. We can see lines not joining (1), a building that got distorted (2) probably to make it possible to join another part of the image and an object showing twice (3).
If we use an appropriated tripod head and rotate the camera around the NPP the objects would be exatcly in the same relative position, making it much easier to stitch pictures then.
This article has been published in the BSD Magazine, January 2013 edition. Here is the link to a local copy I keep. You better read the PDF, that has been reviewed by the editors and I didn't update the article here yet. If and when I do this I remove this message and at that time probably the text will be more complete than the PDF as I won't resist to extend it a little more.
If you need to contact me for any reason, my email adress is
In this article I am going to show you what 360×180° panoramic photography is along with a few of its possible applications. I hope I can show you how fascinating it is. Panoramic photography is one of the most complete ways of experiencing a location without physically visiting. That is one of the reasons why it is also called “Immersive Photography”. In the following sections I hope I can inspire you to try it out with tools available under a BSD or any Unix like system, using only free open source software.
What you will learn
- what 360×180° panoramic photography is,
- how to start making your own panoramic photographs,
- the main tips and tricks to transition completely to 360×180°.
What you should know
- know how to use GIMP1) Probably a well known tool for many of the BSD world. The GIMP is, in a few words, the free software alternative for Photoshop. It is an image editor. With it we can make most of the image improvements like color, luminosity, focus and many more. As an old and mature tool it is available for all most famous BSD flavors, including DragonFly BSD. * Neatimage2). To put your image in its format you need the cubic images I mentioned when I talked about post editing. Once you have them you need to convert each cube face to two resolutions, one with 1024×1024 pixels and other with 480×480 pixels. You need to give them the correct names and put them in the correct directory. Inside the file that we download with the software there is a small text file with all the instructions needed. You will have to do something like this: * download and unpack the vr5 pano viewer, * take your cube faces and convert them, for example, with the convert command from ImageMagick: * supposing you generated the six cube faces with names like: cubic0000.tif, cubic0001.tif, cubic0002.tif, cubic0003.tif, cubic0004.tif, cubic0005.tif, generated by nona, foreach i (0 1 2 3 4 5) convert -resize 1024 cubic000$i.tif 1024_$i.jpg convert -resize 480 cubic000$i.tif 480_$i.jpg end after these commands you will have the files: 1024_0.jpg, 1024_1.jpg, 1024_2.jpg, 1024_3.jpg, 1024_4.jpg, 1024_5.jpg and 480_0.jpg, 480_1.jpg, 480_2.jpg, 480_3.jpg, 480_4.jpg, 480_5.jpg * put all those twelve converted files in the directory vr_files/cube_faces from the vr5 unpacked files * put the whole vr5 thing in a subdirectory below your panorama, where you have put the flash version, for example, create a directory called “entrance”, * edit the file “entrance/vr_files/config.js * put a title in the variable “vrTitle”, like: var vrTitle = 'Palestra V Gnugraf - 18/08/2012';, * put an alternative path to be shown in non iThing devices in the variable “flashPage”, like: var flashPage = '../index.html'; * if you followed the example, creating the index.html for the flash version and putting the vr5 in a subdirectory, then the variable flashPage gets exactly like shown above. That's all folks! You need now to point your panorama link to the “entrance” folder and the vr5 will detect iThings. If it is being accessed by one of those or not it will know what to do and the panorama will be shown correctly! ====== Summary ====== I hope I have been able to show you a brief of the many aspects of the full sphere panoramic photography and how to make it under a BSD system. As I have mentioned there are plenty of ways to achieve the final result and this is just one approach. That said you can, obviously be free to try other ways, but the big steps will not change very much: * you will take your pictures, * you will maybe treat your images, * you will mount the panorama (stitching it), * you will make adjusts (or not), * you will publish it (or not). Each step has its secrets to success. The one I consider the most critical is the stitching step. It is where, in my opinion, you can get in more different troubles and don't know how to solve it. The Hugin mailing list3)