Archive for the ·


· Category...

Removing Lens Distortion in GIMP

Comments Off

User yourgimptutor has a nice tutorial on how to remove lens barrel distortion using GIMP. The steps boil down to:

  1. Use the filter “Lens Distortion”: Filters -> Distorts -> Lens Distortion
    For a wide angled photo with the Canon EF-S 17-55 mm lens at 21.0 mm on a 50D body (1.6 crop) I found that adjusting the “Main” slider to +20 gave a good result.

  2. Use the Perspective Transform: Tools -> Transformation Tools -> Perspective
    The edges of the image can now be dragged out to the corners to fill the canvas size.

Comments Off

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

SanDisk CompactFlash Speeds

Comments Off

Looking for more memory cards for my DSLR, I divided deep into the CF specification, history, and marketing. It’s a mess. Here I’ve focused on the SanDisk CF cards, as that’s what I usually get. More specifically, I wanted to know, which name or specification corresponded to which speed, and what I could expect from the that card when taking a lot of pictures, e.g. hundreds of pictures as part of a panorama.

Over at Digital Photography Insights, Rob Galbraith already has very extensive tests with different cards. Currently, only the EOS 5D Mark III list is covering most relevant CF cards, but tests with the Canon 50D is also planned. Looking forward to it. Also of interest from his page is the various card readers. This led me to the Addonics ADSACF which connects the CF reader directly to the internal SATA bus, and achieves read speeds of more than 90 MB/s. At ~$30, it looks like a very good buy.

Before digging into the SanDisk cards, a bit of background and relevant documents. The CF specification is guarded by the CompactFlash Association, and you have to buy the detailed docs, however they’ve started applying some cute icons to each of the more recent versions. Still, it does not tell you a lot about the read/write speed; e.g. the CF 5.0 and 6.0 specifications carry the same icon. Wikipedia has a bit more detail on the older CF specifications. It mentions that the first CF revisions were using PIO (Programmed input/output); PIO mode 2 since the beginning in 1995, and mode 4 in 2003, with DMA 33 in 2004. According to Rob Galbraith, several of the cards implement dual protocols, i.e. both PIO and UDMA. I’ve not been able to verify this anywhere else, but it seems to make sense, for backwards compatibility. Of course, when operating in PIO mode, one will not be able to take advantage of the speed the newer cards are rated for.

Current CF cards are based on PATA mode, so the UDMA (Ultra Direct Memory Access) modes apply. I’ve lifted he relevant table from the current Wikipedia article, as shown below. Of some relevance is also the speed rating used for SD cards. Here the “x” rating is based on the CD-ROM transfer speeds, e.g. 6x means 6 * 150 kB/s, or 900 kB/s. Some of the Lexar, Kingston, and other CF also use this in the name of the cards, but not SanDisk.

Mode Number Also called Maximum transfer rate (MB/s) Defining standard
Ultra DMA 0 16.7 ATA-4
1 25.0 ATA-4
2 Ultra ATA/33 33.3 ATA-4
3 44.4 ATA-5
4 Ultra ATA/66 66.7 ATA-5
5 Ultra ATA/100 100 ATA-6
6 Ultra ATA/133 133 ATA-7
7 Ultra ATA/ - - -

Back to the SanDisk cards, though. SanDisk itself is not very good at keeping old product pages around, so a lot of the references I found was at Digital Photography Review; they keep their articles around. The story starts in 1994, with SanDisk defining the CompactFlash standard, batteling it out with other companies and cards like Miniature Card, SmartMedia, and later MMC/SD, various Memory Stick formats, and xD-Picture Card.

The first article I can find on dpreview, is an updated product range of “larger capacity CF cards of 64MB, 80MB and 96MB”. No mention of speed, but another article from the same date talks about 1.4 MB/s as high-speed. Later on, the different product lines have been overlapping, upgraded, and renamed, and thus adding a lot of confusion. Add to that strange “marketing” products like the 2007 “Ducati Edition” (4 and 8 GB cards at 45 MB/s), and the terrain starts to get difficult to navigate. Also note, the “Extreme” line has two incarnations, its inital series from 2003, which was just called “SanDisk Extreme”, and the newer UDMA versions; not sure which year they were introduced. The same is the case for the initial “Ultra” line.

Below I’ve listed the SanDisk CF product lines I could find, with best effort searches for largest size, and guesses at standard / IO mode. The model prefixes where partly from Amazon, with hints from the Nikon approved cards page. Feel free to get in touch if you have further information.

Name Model number
Speed Largetst Size Modes Year Source
Standard SDCFB ?? ?? PIO 2 ??
Ultra ?? 2.8 MB/s 512 MB PIO 2 2001 dpreview
Extreme ?? 6 MB/s 1 GB PIO 2 2003 dpreview
Ultra II SDCFH 9 MB/s 8 GB ? PIO 4 2004 dpreview
Extreme III SDCFX3 20 MB/s 16 GB PIO 4 /
2004 dpreview
Extreme IV SDCFX4 40 MB/s 8 GB PIO 4 /
2006 dpreview
Extreme III SDCFX3 30 MB/s 32 GB PIO 4 /
2008 dpreview
Extreme IV SDCFX4 45 MB/s 32 GB PIO 4 /
2008 dpreview
Ultra SDCFH 30 MB/s 16 GB PIO 4 /
?? SanDisk
Extreme SDCFX 60 MB/s 32 GB PIO 4 /
?? SanDisk
Extreme Pro SDCFXP 90 MB/s 64 GB PIO 4 /
2009 dpreview
Extreme Pro SDCFXP 100 MB/s 128 GB PIO 4 /
2011 dpreview
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


Comments Off
“Everyone has a subject in photography they favour the most. A theme, an object, a colour, a part of the body,
flowers, kids, women, sports or, as in my case, abandoned places. is a site I created to showcase the greatest examples of urban decay and past glory
by various photographers from all around the world. If you are into thrilling images, b&w photography and
exploring hidden places, please check out this site.”

Comments Off

Patterns in Sand

Comments Off

Various geologist have photographed patterns in sand, shown in this Wired article. Below, Martyn Gorman’s picture from the east coast of Scotland.

Comments Off

Photo Textures: Flypaper Textures

Comments Off

I recently came across the photo textures from Flypaper Textures, and they seem to have attracted a fan base. Used to add “depth and interest” in a picture, applying an overlay texture creates a more painterly effect (appearing as painted with a brush), and sometimes an impressionists like style. Some of the examples from Flypaper Textures are perhaps a bit on the over-saturated end, however will definitely stick in a Flickr stream.

Although the basic principle is simple; overlay an image with less than 100% opacity, some of the tutorials available are interesting: from Flypaper Textures itself, CoffeShop blog, and a video from Digiscrap101.

Finally, here’s a similar tutorial in GIMP, focusing on the layers features. His example is a lot less subtle though, but the same principle and functions apply.

Before After

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

Tripod ballhead

Comments Off

Here’s an interesting tripod ball head which also can pan smoothly. Acratech GP Ballhead. At $400, I’ll probably have to wait a bit, but interesting never the less. Their promo video is worth watching.

Comments Off

ImageMagick: Add border to portrait images

Comments Off

When taking pictures in both landscape and portrait orientation, all images from the same set might have to presented on the same format. E.g. on a digital picture frame. However, if the portrait images are kept as is, they will usually appear tilted 90 degrees on the frame. A quick and easy way to remedy this, is to add a border around the portrait images, so that they fit the same size as the ones on landscape form.

With the ImageMagick convert command, this is a one-step operation. And for a whole directory of images, it boils down to this one-liner. Based on the IM user guide.

for f in *; do echo $f; convert $f -auto-orient -thumbnail "1200x800>" -gravity center -background black -extent 1200x800 /tmp/$f; done

Comments Off

Canon 60D

Comments Off

I’m a bit late to the release party of Canon 60D, however, the solid reviews are starting to come in. That’s always a bit more interesting than press articles copy-pasting the release notes from Canon. Both Digital Photography Review and DigitalRev compares the new camera to Canon 7D. The former includes a comparison to 50D, while the later compares to 550D. In summary, it’s starting to get rather hard to compare and distinguish these bodies (unless you worry about minute details). The features are similar, the price points are 200 Euros or less in difference. So if you’re choosing from the high end, 7D is probably the way to go right now.

60D does video just like 7D, however this does still not interest me. Perhaps most interesting, is that unlike 50D, they’ve switched to SD cards (rather than CF which is still used in the high end models). It begs the question of whether CF will be completely replaced in next rounds of updates, within a couple of years.

A very minor feature I would welcome is the star rating. Reviewing the pictures on the camera, you can assign stars based on the quality (or whatever you choose for your own encoding scheme). That would certainly speed up publication of my images. Which reminds me, I have some pictures I need to shift through…

Comments Off

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.”