Archive for the 'CleVR' Category

Photo stitcher update, plus short links

Wednesday, July 22nd, 2009

First I must apologise for the lack of updates. All I can say is that I’ve been very busy. With that in mind, I am happy to announce two updates. First, and most important, is a new version of the CleVR Stitcher. I know that a lot of people have been having problem with poor stitching of some images. I’ve been having the same problems. Anyhow, I’m happy to say that this update greatly improves stitch quality. This is mainly down to improvements in focal length estimation and initial image warping. It’s amazing the difference that makes. I’ve also tweaked some thresholds and values to improve stitching in other ways. Let me know if it works for you.

In other matters, we now have short links implemented, using the domain clvr.eu. Just look for the link on the panorama page. For example, see http://clvr.eu/9ny for an Apollo 11 panorama. These links are perfect for sharing your panoramas on Twitter. Once again, let me know what you think.

Recent downtime

Saturday, March 7th, 2009

We’re very sorry about the recent downtime. This was due to some problems on our primary server that required a trip to the datacentre. It should be all working again now. Please contact me if there are any further problems.

Actionscript 3 vector speedups

Thursday, September 25th, 2008

Mike Chambers has posted a comparison between the performance of AS3 arrays and the new Vectors available in Flash Player 10. The results look good: he managed a 60% speedup. This is very exciting for us at CleVR, because of the potential impact it has on the Stitcher in particular. This uses massive Arrays and lots of nested loops which seem to be just the kind of thing that would benefit from this. I haven’t had a chance to do any benchmarking of my own (hard at work on CleVR Pro) but when I do I’ll post another entry.

State change bug in Flex

Sunday, August 17th, 2008

I’ve been trying to track down the source of a bug in the Stitcher. The issue was in the welcome screen, which has states for logging-in, creating a new account etc. The problem was that whenever the login state had been active, moving to another state would throw an error, The supplied DisplayObject must be a child of the caller. After much trial and error I worked out that it was down to the ControlBar that held the login buttons. It seems that the issue is that when Flex adds a controlbar, it doesn’t actually add it as a child of the container in which you place it. This means that when you then try to remove it, it’s in the wrong place. It seems to be related to this bug, which was apparently fixed last year. I’m going to have to produce a minimal version and see if I need to submit a bug report and/or patch.

Anyway, after changing it to use an HBox it’s working. I’ve uploaded a new version of the CleVR Stitcher with that fix and a few others. You can install it from that box in the sidebar (unless you’re reading this via the feed).

Get satisfaction with CleVR

Thursday, August 14th, 2008

Badge_get_help
We’ve just launched a new customer support and discussion community, powered by Get Satisfaction. This should be a great way for us to answer users’ questions, as well as for users to ask each other. Hopefully it can also be used for discussions about panoramic photography in general. Head over to our support page for more details, or go straight to the Get Satisfaction community.

Resizing Actionscript images with bicubic or bilinear interpolation

Thursday, July 10th, 2008

I’ve had a few people contact me to ask about how to use clevrlib to resize images with bicubic or bilinear interpolation in Flash or Flex, so I’ll give an overview of how to do this.

The InterpolatedBitmapData class adds the methods getPixelBicubic and getPixelBilinear to the BitmapData class, which allows you to fetch the colour of a point that’s not on a pixel boundary. We use this when reprojecting the source images in the CleVR Stitcher, but it can work just as well for resizing an image. Bear in mind that bicubic is a lot slower than bilinear, and the quality improvement isn’t usually worthwhile. However, you’re welcome to switch to getPixelBicubic if you need to.

The basic method I’m using here for resizing is to loop through the pixels of the output image, getting the equivalent pixels in the source image. As these are found by multiplying by the ratio between the source and output sizes, the coordinates probably won’t be integers. Using regular getPixel would require rounding, and therefore give a jagged (aliased) output. The getPixelXxx methods let you pass them a Number, which needn’t be an integer, giving a much smoother result.

The sample code below shows a way of resizing an image using this method. The InterpolatedBitmapData should be created in the same way as a BitmapData, such as by draw()ing a loader onto it. The example I’ve shown below is an Event.COMPLETE handler for a Loader. Code below the cut.
(more…)

Tucows on how to use CleVR

Tuesday, June 3rd, 2008

There’s a great article over on Tucows about how to use CleVR to create and share panoramas. In fact, I’d go as far to say that it’s better than our own documentation! Go and take a look, and if you like it then Digg the article.

Shiny new site design

Wednesday, May 28th, 2008

The more observant visitors may have noticed that we’ve just updated the design of the site. It’s not a drastic change, is the first stage of a series of updates that we’ll be releasing over the next month. If you have any problems with the changes, do let me know using the contact form or in the comments. Any comments are also welcome.

One change that may be of interest to web design types is that the new design uses downloadable CSS fonts using @font-face. At the moment, Safari 3 is the only browser that supports that, but that will hopefully change soon. It should still display with no problem in other browsers, just without the custom fonts. The font we are using is Fontin Sans, which is one of several excellent fonts by Jos Buivenga of Exljbris. These fonts have a licence which specifically permits use in @font-face declarations and are free to download. We’re using the font in our new logo and in the CleVR Stitcher, as the licence allows embedding in programs as well. We’re very grateful to Jos for creating this excellent font with such a helpful licence.

CleVR Stitcher update fixes Sony support

Friday, May 23rd, 2008

The CleVR Stitcher uses EXIF tags embedded in the source images to calculate how the images should be warped before stitching. There is a hopeless lack of standardisation in these tags, so we have to use several different techniques to support photos from different camera manufacturers. Sony is the worst, as they do not provide enough information to enable us to make the calculation. This means that we have to use a different method to make an educated guess. However, a bug in the previous version of the Stitcher meant that Sony images would not stitch at all. Thanks to a bug report by user benbreeze this is now fixed. I have also fixed another bug in the self-updater. You can upgrade to the new version here.

Important CleVR Stitcher update

Saturday, May 17th, 2008

It’s been a while since the CleVR Stitcher was updated as I’ve been working on some other important projects. I also had a much needed holiday! Today I have released a new version that fixes lots of bugs which have been reported over the past month or so. It also makes some hopefully significant improvements to the stitching algorithms. If you had problems with poor stitches in the past, then give it another try as it should do better. The improvements are mostly related to common problems in panoramas that have been shot by hand without a tripod.

Thank you everyone who submitted bug reports. They have bee very helpful. This release should fix all of the most commonly reported problems. See below for a list of updates, and important information on installing the update.
(more…)