Digitalkamera-algorithmen

Arbeite ich an einer einfachen video-Gerät, und ich möchte einige standard-Coole Kamera-features. Bei allen möchte ich vorstellen,

  • Fokus-Anzeige
  • Autofokus
  • Automatische Belichtung (ideale Belichtungszeit Schätzung)

Momentan bin ich auf der Suche nach einigen Beispielen, wie diese Funktionen umgesetzt werden können. Haben Sie irgendwelche nützliche links?

BEARBEITEN :
Ok, ich werde mit standard-CCD-Kamera, die mir ~ 20 fps in ~1MPix Auflösung. Ich Plane, es zu schreiben in C#, im Fall der performance-Probleme, ich verwende C++. Ich werde Objektiv + CCD-Kamera + motor.

BEARBEITEN :
Ich würde gerne ein paar mehr detaillierte Algorithmus Beschreibung. Ich bin sicher, einige lernen in der universitären Lehre, aber ich habe Schwierigkeiten zu finden einige. Für die Fokus-Anzeige habe ich versucht, ein primitiver Ansatz, aber in einigen Fällen ist es gescheitert.

 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;

Dank

  • Ich denke, die "language-agnostic" - tag können verhindern, dass jemand von der Buchung keine Antworten. Es würde helfen, eine Menge, die Sie angegeben, welche Art von video-Gerät und welche Sprache Sie möchten, dies zu tun - es gibt viel zu viele Möglichkeiten sonst.
  • Würde es helfen, zu deine Frage, wenn Sie angeben, welche Art von einfachen video-Gerät, welche Art von input, den Sie von ihm bekommen und welche Art der Ausgabe, die Sie erwarten.
  • Auch, welche Art von hardware verfügbar ist. Licht-sensor? Hardware-Objektiv Fokus? Etc.
  • Meine sehr dumme Idee zu konzentrieren Indikation ist die Verwendung eines Optimierungs-Algorithmus, um daraus eine Unschärfe mit einem inverse-of-the-Unschärfe Faltung, maximiert (einfach gemessen) konzentrieren. "Einfach" könnte etwas bedeuten, wie die Standardabweichung für die pixel-Werte, oder zwischen-pixel-Unterschiede (sorry, nicht mein Gebiet). Sowieso, der Punkt ist, dass, wenn Sie haben geschätzt die Parameter des blur-Funktion, die eine weitere sinnvolle Maßnahme, mit der (nicht) konzentrieren. "Ganz dumme Idee", denn ich bezweifle, dass es getan werden kann, in angemessener Zeit.
  • Gut, es kann nicht sein, dass dumme Idee. Sie werden überrascht sein, was Sie berechnen können, in "Echtzeit", wenn der code effizient geschrieben.
  • Siehe auch stackoverflow.com/a/32951113/15485

InformationsquelleAutor Biggles | 2011-05-09
Schreibe einen Kommentar