I have a small pile of "interesting ideas" that I'd like to try someday, time and motivation permitting.
One of these fun ideas that I have would be to create a panopticon using a bunch of cameras. Such as using several cameras watching my the yard (ie, to monitoring my robot), and combine all of them into single "panoramic" image of the whole yard. Or to create a ring of cameras point outward, maybe mounted on a car or ballon, to capture wide horizons.
Broadly speaking, there are two kinds of panopticon here. One is a birds eye image, looking down on the ideal map. The other single point of view, looking out from a center. The later is the one that is more interesting to me at the moment.
The conceptual design is moderately simple:
All approaches will distort the image, and this is no different. It's just a simple start. The advantage here is that most of this processing isn't need for every frame. Since the cameras are mounted, steps 1-4a need only be done every (say) few seconds or minutes. Each frame still needs to have it's pixels copied to the output buffer.
I mentioned in step 5 giving priority to the most detailed image... What's that mean? One camera might have a part of the image with detail and the other out of focus, or small. So it's better to use the camera that has a higher quality image (at least, higher quality in that area.)
And how to do it? Well, it's conceptually simple:
The count and the size of the area (in the source image) is a figure of how detailed that area is in the source image. It's a matter of picking the higher scoring one.
The fun part is that the the tools to do this are now very common. There are kits, like OpenCV with all the building blocks. More importantly, the Windows, OS X, and iOS environments include very expansive image and video manipulation frameworks. These have the tools are likely to, over time, include the above as either standard examples, or prepackaged recipes.
The trick is to recognize the other applications for the examples. These really are just other names, or variations of the process: