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

SourceForge.net Logo
Project
Download
Mailing lists

 

         

imagegrabber.h

00001 /*
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)


Generated for Orca Robotics by  doxygen 1.4.5