Алгоритмы цифровой камеры

Я работаю над простым видеоустройством, и я хотел бы представить несколько классных стандартных функций камеры. Среди всего, что я хотел бы представить

  • Индикатор фокусировки
  • Автофокус
  • Автоэкспозиция (оценка идеального времени экспозиции)

Сейчас я ищу несколько примеров, как можно реализовать эти функции. У вас есть какие-нибудь полезные ссылки?

РЕДАКТИРОВАТЬ: Хорошо, я буду использовать стандартную камеру CCD, которая может обеспечить мне ~ 20 кадров в секунду при разрешении ~ 1MPix. Планирую написать на C #, в случае проблем с производительностью буду использовать C ++. Объектив + ПЗС-камера + моторчик.

РЕДАКТИРОВАТЬ: Хотелось бы увидеть более подробное описание алгоритма. Я уверен, что некоторые из них нужно преподавать на университетских курсах, но мне сложно найти некоторые. Для индикатора фокуса я пробовал примитивный подход, но в некоторых случаях это не помогло.

 int verticalPoints = 0, horizontalPoints = 0;
 ///Calculate the vertical differences
 for (int x = 0; x < toAnalyze.Width; x++)
 {
     for (int y = 1; y < toAnalyze.Height; y++)
     {
        byte* pixel = (byte*)data.Scan0 + y * stride + x;
        verticalDiff += Math.Abs(*pixel - *(pixel - stride));;
     }         
  }
  verticalDiff /= toAnalyze.Width * (toAnalyze.Height-1);
  ///Calculate horizontal differences
  for (int y = 0; y < toAnalyze.Height; y++)
  {
     for (int x = 1; x < toAnalyze.Width; x++)
     {
        byte* pixel = (byte*)data.Scan0 + y * stride + x;
        horizontalDiff += Math.Abs(*pixel - *(pixel - 1));
     }
   }
   horizontalDiff /= (toAnalyze.Width-1) * toAnalyze.Height;
   ///And return the average value
   return(verticalDiff + horizontalDiff) / 2;

Спасибо

24
задан Biggles 12 May 2011 в 11:02
поделиться