Before I get started with some of what you can do with autohalftoning, I need to say a few words about workflow. In most digital photography, you do all your creative work on the file at its original resolution, and resize and sharpen just before printing. By following that procedure, you are prepared to make prints of many different sizes with the minimum effort.
Not so with autohalftoning, or probably any other creative halftoning approach. This kind of halftoning has to be done at the end of the image editing cycle, after the printer and the image size has been determined. Since the halftoned image contains only a limited range of tones – only pure black and pure white in the ones I’m doing – you don’t want some resizing algorithm doing any interpolation and producing intermediate tones. Every time you make a different sized print, you have to start all over. That’s one more argument for doing the halftoning in a programming language that allows parameterizing operations so that they are appropriately tailored to the output image size, rather than trying to get Photoshop to do something it wasn’t designed for.
If you subtract two images in Photoshop, numbers less than zero are truncated, so the result is biased towards black. If you subtract two images in Matlab, nothing is truncated unless you want it to be. It turns out that the unclipped, linear images tend to be boring, and clipping is a reasonable way to bias the output. However, more flexibility than that provided by Photoshop is useful.
The first improvement is to allow the difference image to be clipped from the top instead of from the bottom. Clipping from the bottom produces a low-key effect:
While clipping from the top gives a high-key look:
Another option is to change the clipping level so that it can occur at any number, not just zero. In order to make this tractable, I’ve implemented a clipping offset that is specified as a multiple of the standard deviation of the difference image. Numbers from 0.02 to 0.2 seem to give the best results so far.
Tomorrow, we will take a one-day vacation from autohalftoning, and this blog will be given over to a special product announcement.