Archive for the 'Flash' Category

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…)

New CleVR hotspot editor

Sunday, September 9th, 2007

The hotspot editor on CleVR.com has now been updated so it’s the same as the one in the new Stitcher. It looks quite similar to the old one, but it’s a rewrite done in Flex instead of Flash (if you don’t know what that means, don’t worry). It is however pretty much bug-free now: the old one could be a bit unstable at times. Now that it’s running off the same codebase as the Stitcher, any remaining bugs should be fixed quickly. As ever, comments and bug reports are appreciated.

If you haven’t tried adding hotspots to your panorama, give it a try. If you’re logged-in, you’ll find a button on the panorama page to edit them. Hotspots let you add another level of interactivity to your panoramas. You can create areas within the panorama that can be clicked to give more information or to move to another location. You can display text, images or even Flash files such as Youtube movies. Links to other locations lets you move around an area - for example, you could click on a doorway to move to a panorama inside a building or in a different room.

CleVR Actionscript libraries now on RIAForge

Thursday, September 6th, 2007

I’ve put up the CleVR AS3 libraries on RIAForge, where you can download them as a zip file, or use the svn repository.

The library includes a number of classes that we developed as part of the CleVR Stitcher. They include a set of matrix algebra classes, ported from the Java JAMA library. These let you do standard matrix algebra stuff, and includes support for singular value decomposition and QR decomposition.

There’s also some graphics classes. One is a subclass of BitmapData that adds bicubic and bilinear interpolation. Another is a class for calculating the histogram of an image, with methods to do histogram stretching. This gives results similar to “Auto levels” in Photoshop, or “Enhance” in iPhoto.

You will find them here. They’re released under the Creative Commons attribution licence, which basically lets you do anything with them, so long as you give credit somewhere. A link to clevr.com would usually suffice. Let me know if you have any comments, patches, or if you’re using it.

Image enhancement with histogram stretching in Actionscript

Friday, July 27th, 2007

Yesterday’s update to the CleVR Stitcher has a number of new features. One of these is image enhancement for the finished panorama. This corrects under- or over-exposed images, and works in a similar way to “Auto levels” in Photoshop, or Enhance in iPhoto. See below for more details and a demo.
(more…)

Bicubic and bilinear interpolation in Actionscript 3

Monday, July 2nd, 2007

For the second release of utility code from CleVR Stitcher, the Adobe AIR panoramic photo stitcher, I’m offering our InterpolatedBitmapData class.
The class adds support for bicubic and bilinear interpolation to the Actionscript BitmapData class. It adds two public methods - getPixelBilinear and getPixelBicubic. You can call these with sub-pixel coordinates and it will interpolate the RGB value for that point. This should be useful for anyone doing more complex transformations than those offered by the Matrix class. I hope it will be useful to someone. Do let me know if you’re using it. As ever, a link back to clevr.com is appreciated but not required.

Download it as part of the CleVR Actionscript Library

Linear algebra and matrix manipulation library for Actionscript 3

Saturday, June 30th, 2007

While developing the CleVR Stitcher, I needed to do quite a bit of linear algebra. I was disappointed to find that there was no Actionscript library out there for doing this, so I had to write my own. Rather than doing it from scratch, I decided to start with NIST’s Java Matrix library: JAMA, which is in the public domain.

For the benefit of anyone else needing to do stuff like this, I’m releasing the library. It’s not a full port, as I only implemented the stuff that I need. It does however support most regular operations for manipulating real matrices. As well as the normal algebra stuff, it includes classes for singular value decomposition and QR decomposition. I hope others find it useful. Let me know if you’re using it. A link back to clevr.com from your site would be appreciated but is not required.

Download it as part of the CleVR Actionscript Library

Adobe AIR panoramic photo stitcher

Monday, June 25th, 2007

Update: The CleVR Stitcher can now be found at http://www.clevr.com/stitcher


The Stitcher is the oldest part of CleVR, originally developed nearly four years ago, so it’s needing an upgrade. It was developed in Java, delivered by Web Start, a system that I’ve never been happy with. I decided that the best plan for the new version was to rewrite it from scratch. It’s a Flex-based Adobe AIR app. AIR, formerly called Apollo, is a new cross-platform runtime under development by Adobe. The first beta was released earlier this month, and it’s a joy to develop for. I’m pleased to announce the first alpha version of the new AIR-based CleVR Stitcher. You’ll need a CleVR account to use it. It’s free, and only takes a couple of minutes to sign up.

The choice for the development platform will be surprising to many people. The idea of doing computer vision and image processing in Flash sounds like madness, but the advances in Flash Player 9 make it possible. While developing the CleVR panorama viewer, it became apparent to me quite how powerful some of the new features were, and the performance improvements in the new Player have made it feasible. The current version is slower than the Java stitcher, but there’s a lot more optimisation that I can do, and it’s certainly usable.

Currently it’s missing a number of features from the Java version, most importantly the ability to repair failed stitches. However, I’ve made several improvements to the algorithms, so there should be fewer failed stitches. The repair facility will be added in a future release, as will several other useful features.

Give it a try, and let me know of any bugs that you find, and any other comments that you have.

Another Flash viewer

Monday, November 6th, 2006

Photography for Real Estate has a nice example of another Flash panorama viewer. Pano2QTVR is a paid-for app for Windows that can, among other things, create SWFs of panoramas. The big thing that these have over the CleVR Viewer is support for cubic panos. It’s pretty slick and the fullscreen stuff is good, though ours is unfinished at the moment, so will improve. Of course, what it doesn’t include is stitching and the sharing support (nor is it free). This leads on to another thing I wanted to mention: I have no problem with linking to our competitors - CleVR is free, so it’s not losing us money, and I don’t want anyone to think that this blog is just a place for me to push the CleVR stuff! So, please do add comments with examples of exceptional panorama software, whether viewers or stitchers.

Incidentally, the Photography for Real Estate blog has quite a few other interesting posts about panoramic photography, so it’s well worth a look.

Web apps on the desktop

Friday, November 3rd, 2006

While CleVR is mostly web-based, the Stitcher has always needed to be a desktop app. This is for a number of reasons. Primarily it’s because it needs access to the local filesystem so that you can import your photos. Also, it is processor intensive, so runs best as a native app.

However, it also needs to be tightly-integrated with the server, so that it can handle the uploading, authentication and similar. It also needs to be cross-platform, as we don;t have the resources to develop separate apps for Mac, Windows (and possibly Linux). The current system is pretty good - we use Java Webstart which allows us to launch from the browser, while giving us the access we need to the filesystem and native libraries. However, I’ve never been totally happy with it, and am always looking for a better solution. Luckily, there seem to be some on the way.

(more…)

Actionscript 3 JPEG encoder

Saturday, October 28th, 2006

While I was writing the CleVR viewer and hotspot editor I often found myself running up against limitations of Actionscript. One of the ones that bugged me the most was the inability to export jpegs from BitmapData. Luckily, it seems that some of these limitations will be addressed in Actionscript 3, and an excellent demo at ByteArray.org illustrates exactly the solution I was looking for. Bring on Flash 9!

Miscellaneous bits of all things panoramic, stitched together by the people from CleVR: the best way to stitch and share panoramic photos.