Possible Calibration Programming Interface

Note: I am writing several posts tonight. I've had things to say saved up, but never quite sat down to write them.

On Sunday night, me and Davide implemented 1-camera calibration manually inside of his keyboard app. It was not too hard to work out the math, and it took less time than that to empirically discover our calibration parameters.

Earlier when I took my shower, I was thinking about how the calibration class might look software-wise. It may have been because me and Davide discussed calibration a little the night before, or because I had been thinking about Opengl for Compiz.

My thought is that it may be neat if the Calibrator/Stitcher/Whatever class wrapped or extended the blobList class. They could then expose an interface where we feed them some kind of transform. Then when we request blobs from them using the same interfaces we do now, the blobs pop out with the transformation applied. This is not very different from how Opengl behaves or how some of Compiz behaves.

Implementing a hardcoded Calibration in Davide's app validated this for me a little bit, because we are pretty much manually transforming all the blobs in a single spot in his code. Of course, the question is really whether it is useful to be able to have arbitrary transforms like that. If there is every only going to be one transform (the one to stitch/fix the cameras), then that can be hidden altogether inside something that wraps or extends blobList.

No comments:

Post a Comment