orca-robotics INTRODUCTION Overview Download and Install Quick Start Documentation Publications REPOSITORY Interfaces Components Libraries Utilities Software Map DEVELOPER Tutorials Examples Dev Guide Dashboard Wiki login/pass: orca/orca PEOPLE Contributors Users Project Download Mailing lists
|
imagegrabber.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2008 Alex Brooks, Ben Upcroft 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 #ifndef ORCA_IMAGE_GRABBER_H 00011 #define ORCA_IMAGE_GRABBER_H 00012 00013 #include <orca/camera.h> 00014 #include <orcaice/context.h> 00015 00016 namespace orcaimage { 00017 00018 /* 00019 @brief Abstract class for grabbing images. This replaces the basic 00020 parts of imagegrabber in libcamera used in Orca 1. Much of this interface has been copied from opencv highgui video i/o functions. 00021 00022 All image grabber implementations should implement this. 00023 00024 @author Ben Upcroft b.upcroft at cas.edu.au 00025 */ 00026 00027 class ImageGrabber 00028 { 00029 // const int SOME_ERROR = -1; 00030 // TODO: need replace -1 errors with exceptions 00031 public: 00032 ImageGrabber( const orcaice::Context& context ) : context_(context) {}; 00033 virtual ~ImageGrabber() {}; 00034 00035 // grabs frame from camera. 00036 // Warning: returns 0 on error, 1 on success! 00037 virtual int grabFrame() = 0; 00038 // load the raw image data grabbed from grabFrame() into a byte array. 00039 virtual char* retrieveFrame() = 0; 00040 // grabFrame() and retrieveFrame() in one. 00041 virtual char* queryFrame() = 0; 00042 00043 // get and set properties 00044 virtual int width() const { return 0; }; 00045 virtual void setWidth( int width ) {}; 00046 virtual int height() const { return 0; }; 00047 virtual void setHeight( int height ) {}; 00048 // image size in bytes 00049 virtual int size() const { return 0; }; 00050 00051 // frames per second 00052 virtual double fps() const { return 0.0; }; 00053 virtual void setFps( double fps ) {}; 00054 // enumerations of formats and modes exist in libdc1394/dc1394_control.h 00055 virtual int format() const { return 0; }; 00056 virtual void setFormat( int format ) {}; 00057 virtual int mode() const { return 0; }; 00058 virtual void setMode( int mode ) {}; 00059 virtual double brightness() const { return 0.0; }; 00060 virtual void setBrightness( double brightness ) {}; 00061 virtual double contrast() const { return 0.0; }; 00062 virtual void setContrast( double contrast ) {}; 00063 virtual double saturation() const { return 0.0; }; 00064 virtual void setSaturation( double saturation ) {}; 00065 virtual double hue() const { return 0.0; }; 00066 virtual void setHue( int hue ) {}; 00067 virtual double gain() const { return 0.0; }; 00068 virtual void setGain( int gain ) {}; 00069 00070 virtual double zoom() const { return -1.0; }; 00071 virtual void setZoom( double zoom ) {}; 00072 virtual double minZoom() const { return -1.0; }; 00073 virtual double maxZoom() const { return -1.0; }; 00074 00075 virtual double focus() const {return -1.0; }; 00076 virtual void setFocus( double zoom ) {}; 00077 virtual double minFocus() const {return -1.0; }; 00078 virtual double maxFocus() const {return -1.0; }; 00079 00080 virtual double shutter() const { return -1.0; }; 00081 virtual void setShutter( double zoom ) {}; 00082 virtual double minShutter() const { return -1.0; }; 00083 virtual double maxShutter() const { return -1.0; }; 00084 00085 protected: 00086 orcaice::Context context_; 00087 00088 }; 00089 00090 } 00091 00092 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)