I’ve spent much of the last few days writing computer code for a new project, which like almost all my projects, is an outgrowth of an previous one. When I was working on the frozen flower pictures a few weeks ago, I noticed an interesting mistake. I had been making captures for stacking of some frozen flowers for a few hours, and some ice melted so that remaining started to float on the meltwater. That impacted the registration of the stacking software, and produced an unexpected result that was more appealing to me than a correctly-stacked one would have been.
As any artist with an experimental bent would have done, I began doing things to create stacking errors, learning what worked and what didn’t, and how to control the results. That was enjoyable and instructive. But I began to wish for more control over the stacking process and more automation of my experimenting. About a week ago, I decided to write my own stacking program, using a publically-available algorithm (and some code) described here:
- S. Paul, I.S. Sevcenco, P. Agathoklis, Multi-exposure and Multi-focus image fusion in gradient domain
- I.S. Sevcenco, P.J. Hampton, P. Agathoklis, A wavelet based method for image reconstruction from gradient data with applications, Multidimensional Systems and Signal Processing, November 2013
I learned a little bit about affine transforms (boy, I wish I’d taken Math 124 (linear algebra) when I was a Stanford undergrad) and coded a few simple ones calculated to get the stacking code to screw up. I threw some randomness into the transforms and had the computer crank out 30 results.
They’re not where I want them to be, but this is sufficiently encouraging that I’ll pursue it some more.