Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Übersicht | Auflistung der Dateien | Elemente eines Namensbereiches | Datenstruktur-Elemente | Datei-Elemente

seemicro::videoDevice Strukturreferenz

#include <videodevice.h>

Klassendiagramm für seemicro::videoDevice:

Inheritance graph
[Legende]
Zusammengehörigkeiten von seemicro::videoDevice:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Öffentliche Methoden

 videoDevice (string device="/dev/video0", int imgFmt=VIDEO_PALETTE_GREY, int channel=-1, unsigned int reqWidth=0, unsigned int reqHeight=0)
 ~videoDevice ()
int setPicture (int *reqFmt, bool quiet=false)
bool probeFmt (int fmt)
CvSize * size ()
int captureFrame (void)
int syncFrame (void)
float framerate (void)
void processKeyFrame (void)
void processFrame (myrect *AROI=NULL)

Öffentliche Attribute

fileResource video_fd
video_capability capability
video_window win
video_channel vc
video_picture pict
video_mbuf vm
video_mmap mm
video_info vinfo
unsigned char * pict_buf
int fmt
int imgFmt
int last_VIDIOCMCAPTURE_was_successful
int framesCaptured
int keyFrameRate
bool verbogen
unsigned char * imageDataOld

Ausführliche Beschreibung

Kapselung eines Video4Linux1-Gerätes. Aufgezeichnete Frames können aus img abgeholt werden. Verarbeitet werden können die Kamerabildformate VIDEO_PALETTE_GREY, VIDEO_PALETTE_RGB24 und VIDEO_PALETTE_YUV420P.


Beschreibung der Konstruktoren und Destruktoren

seemicro::videoDevice::videoDevice string  device = "/dev/video0",
int  imgFmt = VIDEO_PALETTE_GREY,
int  channel = -1,
unsigned int  reqWidth = 0,
unsigned int  reqHeight = 0
 

Öffnet und initialisiert das Gerät

Parameter:
device Pfad zum zu verwendenden Gerät
imgFmt Ausgabeformat, in dem img vorliegen soll
  • VIDEO_PALETTE_GREY - img ist IPL_DEPTH_8U, 1 Ebene
  • VIDEO_PALETTE_RGB24 - img ist IPL_DEPTH_8U, 3 Ebenen
channel einzustellender Kanal
  • -1 nichts verstellen
reqWidth,reqHeight Größe, in der Frames aufgenommen werden sollen. Nächstkleinere vom Gerät akzeptierte Größe wird verwendet. Diese kann mittels size() oder src->width/height ermittelt werden. Wird (0, 0) übergeben, wird die voreingestellte Bildgröße übernommen.

seemicro::videoDevice::~videoDevice  ) 
 


Dokumentation der Elementfunktionen

int seemicro::videoDevice::captureFrame void   ) 
 

Sendet Anfrage an Gerät, einen Frame im Userspace-Buffer zu speichern; der kann später mit syncFrame() abgeholt werden. Da das Gerät zwischen captureFrame() und syncFrame() Zeit braucht, sollte die Verarbeitung des letzten Frames in der Zwischenzeit erfolgen.

Rückgabe:
<0 bei Fehler, sonst 0.

float seemicro::videoDevice::framerate void   ) 
 

Rückgabe:
aktuelle Framerate in Frames/s. Funkioniert nur, wenn diese Funktion regelmäßig mit jedem Frame genau ein Mal aufgerufen wird.

bool seemicro::videoDevice::probeFmt int  fmt  ) 
 

Versucht das Bildformat fmt einzustellen.

Rückgabe:
true bei Erfolg, sonst false.

void seemicro::videoDevice::processFrame myrect AROI = NULL  )  [inline, virtual]
 

Verarbeite ein Bild, das keinen Keyframe darstellt

Erneute Implementation von seemicro::RecognitionModule.

void seemicro::videoDevice::processKeyFrame void   )  [inline, virtual]
 

Macht einen vollen Frame in img verfügbar.

Erneute Implementation von seemicro::RecognitionModule.

int seemicro::videoDevice::setPicture int *  reqFmt,
bool  quiet = false
 

Ruft VIDIOCSPICT auf. Die neuen Parameter außer fmt müssen schon in pict eingetragen worden sein. Ist reqFmt == NULL, wird der alte Wert übernommen.

Rückgabe:
Ergebnis des ioctl()-Aufrufs. Das letztendlich akzeptierte Format wird gesetzt.

CvSize * seemicro::videoDevice::size  ) 
 

Rückgabe:
Wirklich verwendete Abmessungen.

int seemicro::videoDevice::syncFrame void   ) 
 

Holt einen Frame vom Device in dieses Objekt, der zuvor mit captureFrame() angefordert worden war.

Rückgabe:
<0 bei Fehler, sonst 0.


Dokumentation der Datenelemente

struct video_capability seemicro::videoDevice::capability
 

V4L1-Datenstrukturen. Unter Linux ist die Doku meist unter /usr/src/linux/Documentation/video4linux/ zu finden.

int seemicro::videoDevice::fmt
 

Format, in dem die Ausgabe des Videogerätes erfolgt.

int seemicro::videoDevice::framesCaptured
 

Anzahl der bereits aufgenommenen Frames.

unsigned char* seemicro::videoDevice::imageDataOld
 

Gespeicherter Pointer von img->imageData, falls wir im "Verbiegemodus" sind, also verbogen == true.

int seemicro::videoDevice::imgFmt
 

Format, in dem die aufgenommenen Bilder in img zur Verfügung gestellt werden. Ist der Wert, der dem Konstruktor übergeben wurde.

int seemicro::videoDevice::keyFrameRate
 

Anzahl der Frames, nach der ein Keyframe eingelegt werden soll.

int seemicro::videoDevice::last_VIDIOCMCAPTURE_was_successful
 

Wenn die letzte VIDIOCMCAPTURE-Operation erfolglos war, wird kein VIDIOSYNC ausgeführt.

struct video_mmap seemicro::videoDevice::mm
 

struct video_picture seemicro::videoDevice::pict
 

unsigned char* seemicro::videoDevice::pict_buf
 

Zeiger auf den Framebuffer des V4L-Gerätes, in dem die Videodaten nach syncFrame() zur Verfügung stehen.

struct video_channel seemicro::videoDevice::vc
 

bool seemicro::videoDevice::verbogen
 

Gibt an, ob wir im Verbiegemodus sind. In diesem Fall wird wird in processFrame() img->imageData auf den Bereich in pict_buf gesetzt, in dem der aktuell aufgenommene Frame zu finden ist. Der Verbiegemodus ist also ein Zero-Copy-Modus. Der Destruktor muß aufpassen, daß img->imageData vor munmap() und cvDestroyImage(&img) auf imageDataOld zurückgesetzt wird.

fileResource seemicro::videoDevice::video_fd
 

Gekapseltes Dateihandle zum Videogerät.

struct video_info seemicro::videoDevice::vinfo
 

struct video_mbuf seemicro::videoDevice::vm
 

struct video_window seemicro::videoDevice::win
 


Die Dokumentation für diese Struktur wurde erzeugt aufgrund der Dateien:
Erzeugt am Sun Oct 3 12:53:45 2004 für seemicro von doxygen 1.3.2