My Project
CapturePluginPtgrey.h
Go to the documentation of this file.
1 /*
2  * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3  *
4  * Copyright 2007-2012 VTT Technical Research Centre of Finland
5  *
6  * Contact: VTT Augmented Reality Team <alvar.info@vtt.fi>
7  * <http://www.vtt.fi/multimedia/alvar.html>
8  *
9  * ALVAR is free software; you can redistribute it and/or modify it under the
10  * terms of the GNU Lesser General Public License as published by the Free
11  * Software Foundation; either version 2.1 of the License, or (at your option)
12  * any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17  * for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with ALVAR; if not, see
21  * <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>.
22  */
23 
24 #ifndef CAPTUREPLUGINPTGREY_H
25 #define CAPTUREPLUGINPTGREY_H
26 
36 #ifdef WIN32
37 # ifdef ALVAR_Capture_Plugin_Ptgrey_BUILD
38 # define ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT __declspec(dllexport)
39 # else
40 # define ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT __declspec(dllimport)
41 # endif
42 #else
43 # define ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT
44 #endif
45 
46 #include "Capture.h"
47 #include "CapturePlugin.h"
48 #include "FlyCapture2Defs.h"
49 
50 // Forward declaration for PTGrey specific classes.
51 namespace FlyCapture2 {
52 class Camera;
53 class Image;
54 } // namespace FlyCapture2
55 
56 namespace alvar {
57 
61 namespace plugins {
62 
69 class ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT CapturePtgrey : public alvar::Capture
70 {
71 public:
77  CapturePtgrey(const CaptureDevice captureDevice);
82  bool start();
83  void stop();
84  cv::Mat captureImage();
86  std::string SerializeId();
87  bool Serialize(Serialization *serialization);
88 
89 private:
90  FlyCapture2::Camera *mCamera;
91  FlyCapture2::Image * mImage;
92  FlyCapture2::PGRGuid mGUID;
93  int mChannels;
94  cv::Mat mReturnFrame;
95 };
96 
103 class ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT CapturePluginPtgrey : public alvar::CapturePlugin
104 {
105 public:
111  CapturePluginPtgrey(const std::string &captureType);
117  Capture * createCapture(const CaptureDevice captureDevice);
118 };
119 
120 extern "C" ALVAR_CAPTURE_PLUGIN_PTGREY_EXPORT void
121 registerPlugin(const std::string &captureType, alvar::CapturePlugin *&capturePlugin);
122 
123 } // namespace plugins
124 } // namespace alvar
125 
126 #endif
This file implements a capture interface.
This file implements a capture plugin interface.
CaptureDevice holder for camera information.
Definition: CaptureDevice.h:45
Capture interface that plugins must implement.
Definition: Capture.h:47
CapturePlugin interface that plugins must implement.
Definition: CapturePlugin.h:45
std::vector< CaptureDevice > CaptureDeviceVector
Vector of CaptureDevices.
Definition: CapturePlugin.h:59
Class for serializing class content to/from file or std::iostream.
Definition: Util.h:371
Implementation of CapturePlugin interface for Ptgrey plugin.
Capture * createCapture(const CaptureDevice captureDevice)
Create Capture class. Transfers onwership to the caller.
CapturePluginPtgrey(const std::string &captureType)
Constructor.
CaptureDeviceVector enumerateDevices()
Enumerate capture devices currently available.
Implementation of Capture interface for Ptgrey plugin.
bool Serialize(Serialization *serialization)
Performs serialization of the class members and configuration.
cv::Mat captureImage()
Capture one image from the camera.
void stop()
Stops the camera capture.
bool start()
Starts the camera capture.
bool showSettingsDialog()
Show the settings dialog of the camera.
CapturePtgrey(const CaptureDevice captureDevice)
Constructor.
std::string SerializeId()
The identification of the class for serialization.
Main ALVAR namespace.
Definition: Alvar.h:174