Eyes Above The Waves

Robert O'Callahan. Christian. Repatriate Kiwi. Hacker.

Monday 16 July 2007

Camera Features I Want

My new point-and-shoot camera has something I've been wanting for a long time: an orientation sensor so photos are automatically assigned landscape or portrait orientation. Yay!

I still have a few items on my wish-list:

  • Automatic horizon alignment. Maybe there's something wrong with me, but I find it hard to take photos where the horizon is perfectly ... horizontal ... and photos with non-horizontal horizons bug me. This could be fixed: make the camera's orientation sensor reasonably precise, detect when the angle from horizontal is quite small (say five degrees either way), and in that case rotate the image to compensate.
  • Stability detection. I'd like the camera to have accelerometers so it can wait a little and take a photo precisely during a stationary moment. I think this could really help with photos involving vehicles and shaky hands.
  • Wifi photo sharing. I'm sick of having to give people my camera for them to take a photo of me, and I'm really sick of big group photos where some photographer has a pile of fifty cameras she has to go through so everyone gets their copy. Solution: give cameras a "share my photos" setting and a "collect other people's shared photos" setting (or combine them into one). When "share my photos" is enabled, every time the camera takes a photo, it's broadcast to all other cameras in range; those cameras with "collect" enabled, collect it. This would be particularly fun with lots of people around taking photos.
  • Enough dynamic range so I can take a photo of a landscape without whiting out the sky...
  • All this in a camera that's cheap enough that I don't have to become a photo freak to justify purchasing.


Mikko Rantalainen
I agree that wifi support would be a nice feature in digital cameras. You're missing GPS positioning from your list, too.
However, when it comes to Automatic horizon alignment and enough dynamic range, I guess it comes down to laws of the physics that suck. I remember once reading an article that claimed that current CMOS and CCD chips are already able to capture most of the photons going through the lens. To be able to record more dynamic range, the camera (and CMOS or CCD chip) should be able to record more information about the number of photons hitting the sensor surface. However, to gather more photons for a single pixel (to increase the dynamic range for darker areas of the image) you have to increase the pixel size in the sensor, which leads to increased sensor dimensions (which causes increased costs, because the price of a transistor has decreased but the price of processed CCD sensor has stayed the same for a given area). In addition, increasing the sensor size requires increasing the lens diameter which, again, increases the the costs of making the lens and therefore the price of the full camera.
The only other ways to capture more photons would be to increase the quality of the lens (very expensive) or increase the time you gather the photons (shutter time). The latter once requires you to keep the camera still and no object in the picture is allowed to move, either.
As for the stability detection. Look for a camera with optical image stabilizer instead. It will componsate for camera shaking in real time and it will be able to capture a nice photo without even needing the camera to stay perfectly still. It works by either tilting the optical lens elements to compensate for unwanted camera movement or move the digital sensor so that movement is again composensated.
Automatic horizon alignment cannot be nicely accomplished because doing it every time would blur the image and that cannot be compensated by increasing the number of pixels (the ever continuing megapixel race) because the decreasing the size of a pixel is going to ruin the dynamic range because you no longer can gather enough photons.
Jindrich Pozlovsky
That "phot sharing" feature is really good idea. Instead of WiFi, Bluetooth could be used.
Robert O'Callahan
Bluetooth would work fine for photo sharing, yeah.
I don't understand why my sky-whitening problems require more photons to be gathered. The dark part of the image looks just fine, it's the bright sky that's losing information.
I don't actually care about pixel density. I never make prints, and I rarely print photos; I mostly just share them online where they're all scaled down anyway. So give me my horizon alignment!
GPS, plus a full array of orientation sensors, would be nice too. I forgot that one. Then you could do Photosynth-like things much easier, stitching together collections of photos to build a map of a scene. If you had a large group of people taking photos at the same time, sharing them wirelessly, and then reconstructing the scene from the photo collection, that would be an awesome combination of features.
I don't know if there's any readily available software that does that, though as I recall he releases his software as open source.
However, you'll probably find that the real culprit is your monitor, since monitors have a much narrower dynamic range (not to mention gamut) than our eyes can use.
Chris Jay
I'd like a camera that automatically uploaded its photos to my online Picasa store whenever it entered a Wifi zone (e.g. my house).
If it had GPS, it could upload the location too!
Jim Battle
Pertaining to your 4th bullet:
Pixim (www.pixim.com) have a sensor technology that is quite interesting, although they are applying it only to security cameras.
They have a non-destructive, very fast read out of the CMOS sensor array. They can read out the whole thing multiple times in a single exposure. By noting when each pixel saturates, they can do an exponential interpolation and effectively give each pixel its own exposure control.
Like most sensors, there is a lot of signal processing going on to compensate for non linearities, noise sources, and the fact that each "pixel" really is just a single R/G/B subpixel.
B Laver
I recently wanted to enter a photo competition (NGM) and they asked for the photo's to be at least 1,600 pixels long, mine seem to be 800x572 pixels, can i change this?