ImageCooker: An open source collection of raw image processing utilities

ImageCooker is a set of open source utilities for manipulating raw images from digital cameras (currently Konica Minolta DiMAGE cameras, though support should expand eventually). These are certainly not the only raw processing utilities available, nor are they even the only such open source utilities available, but they may prove to be useful somehow.

April 2005 update: I "jumped ship" from the Minolta DiMAGE 7Hi to the Canon EOS Digital Rebel more than a year and a half ago, and recently upgraded again to the Rebel XT. I am keen to add Canon CRW and CR2 support to ImageCooker, but my day job tends to interfere with my plans at times. :-) I also have Nikon-using friends, so perhaps Nikon support will find its way in eventually... Also, there were some generous contributors over the past months who submitted patches to fix various issues, or to add some feature or another. Unfortunately I haven't been a very active maintainer, but I will revisit the patches that I still have and try to apply them.

For more about ImageCooker, I have provided some information in the form of Q&A:

What utilities are provided?

Currently there are four utilities for use with Minolta Raw (MRW) files:

In addition, there are two utilities that perform Bayer-related operations on PPM files (these are useful for experimentation but not much else):

Why another set of such utilities? Don't we have enough already?

Yes, there are other utilities out there that do the same thing (most of them actually do more, such as perform color space conversion, profiling, etc.). But I had a few specific goals in mind when writing these. I wanted to

The Bayer interpolation algorithms I chose to implement were (most of) those described by Ting Chen in his Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras. A number of these (e.g. Nearest Neighbor, Bilinear) aren't particularly sophisticated and probably wouldn't be used in the real world (at least for still image applications), but I implemented them for completeness (part of my purpose, after all, was to play around).

For fun, I added a "No Interpolator" algorithm which doesn't interpolate color values at all, but instead produces each pixel in the output image having only the red, green or blue color component that that corresponds to the (single) color of the corresponding pixel in the camera sensor. It doesn't produce particularly useful images, but when zoomed in, such images reveal exactly what is "seen" by the Bayer sensor.

What are the limitations of the utilities?

There are a lot. This is, after all, a work in progress, and my development priorities may differ from yours. :-) (Having said that, I'm willing to prioritize my development efforts to some degree based on feedback about what features are important to users--that is, if there are any users.) Here are some current limitations that come to mind:

What's the deal with the logo?

The background features "pixels" of exaggerated proportions, fading from a full-color image to its RGB constituents, reminiscent of a Bayer pattern. (Actually the bayerize utility was used in the creation of this effect.) The camera body is a Minolta DiMAGE 7Hi, the model I owned and used when writing the early versions of ImageCooker.

Enough of your jabber; how do I get my hands on the stuff?

At the moment, version 0.4 of the utilities are available as source code in ZIP format.

Please note that the utilities are distributed under the terms of the GNU General Public License, but I haven't yet added the source code comments, etc. to that effect. Chuan-kai Lin has also made his "reference implementation" of Pixel Grouping available under the GNU GPL. It has been suggested that perhaps the LGPL would be a more appropriate license; I am open to making ImageCooker available under the LGPL, but I need to contact Lin to find out if he's OK with that, given that he holds the copyright to the Pixel Grouping implementation.

If you're a little curious about what to expect from ImageCooker in the future, you can check out the TODO list.

A little version history:

0.4 (8 April 2003)

0.3 (19 January 2003)
0.2 (14 January 2003)
0.1 (11 January 2003)

Is there any related material that I should look at?

There are a number of sites from which I gathered valuable information. Here are a few:

Almost forgot--who do I contact if I have problems, suggestions, patches, etc.?

Don't hesitate to e-mail Jeremy Rosenberger at jlr4@cornell.edu. I'd be interested in knowing who's using this stuff!

All product names (e.g. DiMAGE) are trademarks of their respective manufacturers (e.g. Konica Minolta). Everything else ©2003-2007 Jeremy L. Rosenberger. All rights reserved.

This page was last modified on 14 April 2005.