Image Processing

My First Plug-Ins

I wrote my first two Quartz Composer 3.0 plug-ins today. Some of the code was lifted from my old "hack" plug-in for QC 2.0 that I never released, and other code was pulled from all the great examples in the QC Examples directory. To use the plug-ins, download them and unzip them, then copy the plug-in out of the "build/release" directory into your "~/Library/Graphics/Quartz Composer Plug-Ins" directory (creating it if you don't have it), then re-start QC. Beware, use with caution, alpha-quality, and all that should be applied.

The plug-ins basically attempt to track N features across a video stream using a KLT (Kanade-Lucas-Tomasi) feature tracker I found in the public domain (written by Stan Birchfield and Thorsten Thormaehlen). It's really inefficient (especially the plotter), but I'll figure out how to get better. I think the feature tracking itself is pretty fast-- just my handling of the QC buffers leaves something to be desired. Full source is included, although I haven't attached any licenses to it yet. Just ping me and I'll give you permission to use it however you want. I also posted a little composition that uses the two plug-ins.

Needless to say, with the new built-in patches and the ability to write your own, QC has gained a lot of power. I could see using it as the mediator for all sorts of processing pipelines. If only Apple was at all interested in Java I could tie it in to the stuff I do for my day job. (Besides being faster to develop and execute than a lot of the Objective C stuff these days, and having a modern IDE, Java would give Apple access to zillions of trained developers, but I digress...)

So anyway, feel free to check it out and please offer suggestions. I'll probably get back to composition writing during the week instead of plug-in hacking.