/usr/include/visp/vpFrameGrabber.h is in libvisp-dev 2.8.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | /****************************************************************************
*
* $Id: vpFrameGrabber.h 4323 2013-07-18 09:24:01Z fspindle $
*
* This file is part of the ViSP software.
* Copyright (C) 2005 - 2013 by INRIA. All rights reserved.
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* ("GPL") version 2 as published by the Free Software Foundation.
* See the file LICENSE.txt at the root directory of this source
* distribution for additional information about the GNU GPL.
*
* For using ViSP with software that can not be combined with the GNU
* GPL, please contact INRIA about acquiring a ViSP Professional
* Edition License.
*
* See http://www.irisa.fr/lagadic/visp/visp.html for more information.
*
* This software was developed at:
* INRIA Rennes - Bretagne Atlantique
* Campus Universitaire de Beaulieu
* 35042 Rennes Cedex
* France
* http://www.irisa.fr/lagadic
*
* If you have questions regarding the use of this file, please contact
* INRIA at visp@inria.fr
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
*
* Description:
* Frame grabbing.
*
* Authors:
* Eric Marchand
*
*****************************************************************************/
#ifndef vpFrameGrabber_hh
#define vpFrameGrabber_hh
#include <visp/vpImage.h>
#include <visp/vpRGBa.h>
/*!
\file vpFrameGrabber.h
\brief Base class for all video devices. It is
designed to provide a generic front end to video sources.
*/
/*!
\class vpFrameGrabber
\ingroup Framegrabber
\brief Base class for all video devices. It is designed to provide a front
end to video sources.
This class should provide a virtual function that allows the acquisition
of an image.
The example below shows how to use this class.
\code
#include <visp/vpConfig.h>
#include <visp/vpImage.h>
#include <visp/vpImageIo.h>
#include <visp/vpV4l2Grabber.h>
#include <visp/vp1394TwoGrabber.h>
int main()
{
#if defined(VISP_HAVE_V4L2) || defined(VISP_HAVE_DC1394_2)
vpImage<unsigned char> I;
vpFrameGrabber *g; // Generic framegrabber
#if defined( VISP_HAVE_DC1394_2 )
vp1394TwoGrabber *g_1394_2 = new vp1394TwoGrabber;
// specific settings for firewire grabber based on libdc1394-2.x version
g_1394_2->setVideoMode(vp1394TwoGrabber::vpVIDEO_MODE_320x240_YUV422);
g_1394_2->setFramerate(vp1394TwoGrabber::vpFRAMERATE_30);
g = g_1394_2;
#elif defined( VISP_HAVE_V4L2 )
vpV4l2Grabber *g_v4l2 = new vpV4l2Grabber;
// specific settings for Video For Linux Two grabber
g_v4l2->setInput(2); // Input 2 on the board
g_v4l2->setFramerate(vpV4l2Grabber::framerate_50fps); // 50 fps
g_v4l2->setWidth(384); // Acquired images are 768 width
g_v4l2->setHeight(288); // Acquired images are 576 height
g_v4l2->setNBuffers(3); // 3 ring buffers to ensure real-time acquisition
g = g_v4l2;
#endif
g->open(I); // Open the framegrabber
g->acquire(I); // Acquire an image
vpImageIo::write(I, "image.pgm"); // Write image on the disk
#endif
}
\endcode
\author Eric Marchand (Eric.Marchand@irisa.fr), Irisa / Inria Rennes
*/
class VISP_EXPORT vpFrameGrabber
{
public :
bool init ; //!< Set to true if the frame grabber has been initialized.
protected:
unsigned int height ; //!< Number of rows in the image.
unsigned int width ; //!< Number of columns in the image.
public:
//! Return the number of rows in the image.
inline unsigned int getHeight() const { return height ; }
//! Return the number of columns in the image.
inline unsigned int getWidth() const { return width ; }
public:
virtual ~vpFrameGrabber() { ; }
virtual void open(vpImage<unsigned char> &I) =0 ;
virtual void open(vpImage<vpRGBa> &I) =0 ;
virtual void acquire(vpImage<unsigned char> &I) =0 ;
virtual void acquire(vpImage<vpRGBa> &I) =0 ;
/*!
This virtual function is used to de-allocate
the memory used by a specific frame grabber
*/
virtual void close() =0 ;
} ;
#endif
|