1

As you've read on the title, I have a project on photo capture on mobile devices. I am supposed to detect if the real-time input to the camera of a mobile device is stable or not. But so far, all I've been seeing is on stabilization itself, mostly videos...not on seeing whether the input is stable. And I haven't read or seen any paper which has metrics on image instability. Though there are items on blur and focus, but they are not quite concrete. Is there any way on quantifying the "instability" of an image (assuming it's more than just blur, shake, and focus)?

joalT
  • 85
  • 1
  • 1
  • 7

1 Answers1

0

The real-time input is presented as a series of preview images. If the camera is still and the object is still, then each of these images is going to be very similar to the previous one. Personally, I'd hang on to each preview image, and when the next one comes in, compare them pixel-by-pixel. Compute:

totalDifference = 0;
for (each pixel n) 
    for (each colour R, G, B) 
        totalDifference += abs(oldValue - newValue);

stability = 1/(1 + totalDifference); // a value of 1 is stable, near 0 is unstable

although that would not take into account instability in dark objects. Maybe you should use

        totalDifference += abs((oldValue - newValue)/(oldValue + newValue)); // watch for divide by 0!

instead. Good luck!

emrys57
  • 6,679
  • 3
  • 39
  • 49
  • That looks promising... Where did you get/learn this - book/source/online? Is that really how stability is defined? Though I do get the concept of somewhat averaging/normalizing the previews to get the "stability", so to speak. But I need to be able to detect and say, "Hey! This preview is 'stable'! This is what I should capture." What else am I missing? – joalT Nov 30 '12 at 17:34
  • I don't think you're missing anything! I didn't find it anywhere, you asked the question and I thought up the answer on the spot, that's what makes this site fun. I don't really know exactly what you need, but if I wanted to capture a stable image, this is what I'd try first. Good Luck! – emrys57 Nov 30 '12 at 17:37