Posts tagged ·



Panoramic Heads

Comments Off

Coming back to panorama photography again, I found some interesting DIY pano heads: First a wooden one by arodrix, then a just as cheap metal rod based by Peter Loud, and finally “bone” head by Matteo Cominetti. All of them interesting in that they full-fill what they set out to achieve by very simple means. At this point, it is probably worth nothing what that is: PanoHelp explains why the pivot point should be changed when taking pictures for stitching.

If you don’t want to build yourself, there are some reasonably priced options from DealExtrme. (The two first look exactly the same, even if they are different names slapped on top)

My end goal is something like the Gigapanbot, mentioned earlier, so maybe some simple brackets might also do, plus a battery. More about that later.

Comments Off

Barcelona Panorama

Comments Off

I’ve added two new panoramas from Barcelona, one from high up in the towers of the Sagrada Familia, and one from the top of the roof of the Cathedral of the Holy Cross. The later could maybe just as well have been a wide-angle picture, as the most interesting element is the cross in the centre, but this time it turned out to be panorama.

Comments Off

Update to HTML5 Canvas Panorama Viewer

Comments Off

I published the HTML5 Panorama Viewer last year, and have finally had the time to make some updates, including support on touch screen mobiles. I’ve tested on several browser for Android (bulti-in, Firefox, and Opera Mobile), as well as Safari on iPhone; it’s looking good, but please report any issues you might find. Known limitations include click and move lag on older phones, no support for history management in some browsers, nor multi-touch in most (thus no pinch-zoom yet).

Desktop controls:
Zoom in: double click
Zoom out: right click
Move: Hold and drag

Mobile controls:
Zoom in: double click (can be a bit tricky)
Zoom out: hold without moving for more than 2-3 seconds
Move: Hold and drag

Licenses: The JavaScript and HTML coded for the viewer is licenses under GPL3. The copyright of the panorama images are retained by the author.

Comments Off

Lego Panorama

Comments Off

I’ve discussed panorama robots in the past, and here is a new creation. James Catan has created several Lego robots to do timelapse and and pan/tilt pictures. One of them were recently presented in Gadget Review, and shows holding a Canon Rebel XT with a kit lens. So not quite 5D, 200mm f2.8 as with Jeffrey Martin’s rig. Yet still a good and simple setup.

Another interesting pan & tilt product comes from Sparkfun. It is a robot arm, consisting of servos and and a claw. It will definitely not hold a SLR, but possibly some smaller pocket cameras or phones. As far as I understand, the complete robot arm comes in several parts which you’ll have to add to your order separately.

Comments Off

Touch events in JavaScript

Comments Off

Looking to extend my “HTML5 Canvas Panorama Viewer” to make it work on mobile phones, I’ve started to dig into the wonderful world of incompatible touch events between all the browsers. It’s IE vs. WebKit vs. Gecko vs. Opera, or back to the 90s in other words.

Peter-Paul Koch site quirksmode does a good job of summarising the various aspects of mobile web development.  In particular, the touch table is relevant to what I wanted to achieve. However, it does not look too promising right now, as most events are listed as either no supported, or incomplete.

Still, an old tutorial by nroberts, “Touching and Gesturing on the iPhone” gives hope. It includes a small example ( which actually do work to some extent on both the Android  native browser, and Firefox 6.

Now the challenge is to combine it all, and have both desktop and mobile browser behave in an expected and functional manner. Using the same events for the same actions does probably not make sense, however the user should be able to achieve the same across all browsers. The panorama viewer needs only three actions: zoom in, zoom out, and move. Zoom in already works, move works but is buggy, and some touch gesture must replace right-click to zoom out. I’ll come back to this later.

Comments Off

Strahov Library 40 Gigapixels

Comments Off

Jeffrey Martin, founder of 360Cites, recently released a 40 GP indoor panorama of the Strahov Library in Prague. It claims to be the world’s largest indoor panorama. It consists of 2947 shots, which combine to the 280,000 x 140,000 pixels, and 280 GB image.

You can view it here, but be aware that the Flash application and pictures can take quite some time to load. I also have the Flash crash several times.

The TC article mentions the he used a Canon 550D and a 200mm lens. It is also covered by Wired, and from their picture of the setup, it seems to be a Canon EF 70-200mm f/2.8 L USM. The Canon 550D is a 18 MP camera, which means 2947 input images gives a total of 53 GP raw data. Furthermore, he uses RAW files, at around 20 – 25 MB echo, so that would take up 59 to 73 GB on the card. (Thus, the 280 GB number above seems a bit strange).

Furthermore, it intersecting to note hat he uses the GigaPanBot by T. Emrich from Germany. I wrote about his project in November last year, and got the impression it was more of a hobby project. It seems he has made a nice niche business for himself.

In the Wired article, they mention that the camera does not always get focus, so Jeffrey has to jump up, pause the robot, fix the focus, and continue. It also says that on the first day, he managed to finish about 20% of the job before the library closed at 5 pm. It doesn’t say how long it took to complete, but at that rate it would take a week! After that, it took 111 hours to stitch everything together, and about 10 hours of work to fix misaligned images.

Comments Off



Here is the first in a series of panorama pictures I’ve worked on over the past years. This is of Zurich, taken from Üetliberg. It is composed of 211 single 15 MP pixels, and the result is an image of 33585×6832 pixels or 230 MP.

It was stitched using the open source panorama tool Hugin, and split into tiles using ImageMagick. The panorama is rendered using a home made HTML 5 Canvas viewer. If you’re interested, the source is open source under GPL 3.

The ImageMagick commands are worth a closer look. As mentioned, the complete image is 230 MP, and to serve scaled tiles, it useful to work with something smaller. Five different scales were created from the original. Here is the basic resize command to 50%:

convert input.tif -resize 50% output_50.tif

Next, each of the resized images were tilled following the excellent instructions on the IM site. They were cropped to equal tiles, so there is only a +1 pixel difference between some of the tiles. For the current panorama, I’ve chosen to ignore that difference, and render based on the smallest.

The following gives 49 columns and 8 rows, with the first top left hand tile starting with filename tile_0.jpg. It is worth noting that not all tile sizes worked; in some cases only the first row would be produced, changing (often increasing) the tile count would work around that.

convert output_50.tif -verbose -crop 49x8@ +repage +adjoin tile_%d.jpg

Finally, I wanted to put a water mark on some of the images. Here, I also followed the IM instructions without problems. To create the “stamp”, the following did it:

convert -size 300x50 xc:grey30 -font FreeSans-Medium -pointsize 20 -gravity center -draw "fill grey70  text 0,0  'Copyright'" stamp_fgnd.png
convert -size 300x50 xc:black -font FreeSans-Medium -pointsize 20 -gravity center -draw "fill white  text  1,1  '' text  0,0  'Copyright' fill black  text -1,-1 'Copyright'" +matte stamp_mask.png
composite -compose CopyOpacity  stamp_mask.png  stamp_fgnd.png  stamp.png
mogrify -trim +repage stamp.png

To apply the stamp to an image, e.g. tile_20.jpg

composite -gravity SouthEast -geometry +10+10 stamp.png tile_20.jpg watermarked.jpg

Panorama Robots


It somehow seems inevitable; if you are into photography and electronics, you want to build a panorama robot. Coupled with very good software to stitch and render a panorama image, the results can be breathtaking even with little effort. For the stitching software, I recommend Hugin, the open source panorama stitcher. On a modern OS; just go yum / apt-get install hugin. For a good intro into setting up and shooting the single frames which goes into your panorama, see Robert. Cailliau’s article.

Once you’ve taken a few pictures, maybe five or even ten with a fairly wide angle lens, you realize that you can get even more detail if you use a zoom lens. Maybe 200 or 300mm. However, now you have to take hundreds of pictures to cover the same area in your finished panorama. This is were the robots come in.

The pocket camera on the turn table below is a very cheap solution; about 15 Euros. I have not found a specific product or manufacture name, though. It shows up in searches for “Panorama Drehteller“. Next to it is a more professional solution, the Gigapan Systems Epic 100 Panorama Robot. It can take a DSL, and pan both horizontally and vertically. You need both if you plan on using a 200mm lens.

So if you’re only into photography, and not DIY and soldering, those are maybe some of the solutions you’d go for. However, if you are able to build one yourself, what is stopping you? Nothing, it seems, judging by the number of home made panorama bots. Here is a Lego Mindstorms competition to build a pano bot with the winners from 2008. Here is a Jason Babcock’s second go at a panoramic turntable, using ULN2004A and BX-24 micro-controller.  And here is T. Emrich’s system which looks like a very solid setup, and clever control: His early work resulted in a horizontal rotation only solution. Later on, he built the GigaPanBot or Gigapixel Panorama Robot with complete freedom on both axis, seen in the picture below. Maybe most impressive, is how the whole system fits into his camera bag.

So what if you want to build your own. Well, nothing is stopping you, and there is plenty of parts to pick up to make a simple first system. Babcock’s first attempt was using a stepper motor from an old fax. Or you could buy a new stepper motors for less than 20 Euros.

To help you on your way, there’s the DollyShield, which I spotted on the Arduino Shield List. It includes control of two DC motors, shutter remote for the camera, joystick buttons and a LCD. “It is designed to provide an inexpensive and easy-to-use interface for two-axis motion control integrated with a camera.”