ViSP
Main Page
Related Pages
Modules
Classes
Examples
All
Classes
Functions
Variables
Enumerations
Enumerator
Friends
Groups
Pages
vp1394CMUGrabber.h
1
/****************************************************************************
2
*
3
* $Id: vp1394CMUGrabber.h 4216 2013-04-17 09:06:18Z fspindle $
4
*
5
* This file is part of the ViSP software.
6
* Copyright (C) 2005 - 2013 by INRIA. All rights reserved.
7
*
8
* This software is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public License
10
* ("GPL") version 2 as published by the Free Software Foundation.
11
* See the file LICENSE.txt at the root directory of this source
12
* distribution for additional information about the GNU GPL.
13
*
14
* For using ViSP with software that can not be combined with the GNU
15
* GPL, please contact INRIA about acquiring a ViSP Professional
16
* Edition License.
17
*
18
* See http://www.irisa.fr/lagadic/visp/visp.html for more information.
19
*
20
* This software was developed at:
21
* INRIA Rennes - Bretagne Atlantique
22
* Campus Universitaire de Beaulieu
23
* 35042 Rennes Cedex
24
* France
25
* http://www.irisa.fr/lagadic
26
*
27
* If you have questions regarding the use of this file, please contact
28
* INRIA at visp@inria.fr
29
*
30
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
31
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
32
*
33
*
34
* Description:
35
* Firewire cameras video capture based on CMU 1394 Digital Camera SDK.
36
*
37
* Authors:
38
* Lucas Lopes Lemos FEMTO-ST, AS2M departement, Besancon
39
* Guillaume Laurent FEMTO-ST, AS2M departement, Besancon
40
* Fabien Spindler
41
*
42
*****************************************************************************/
43
44
#ifndef vp1394CMUGrabber_h
45
#define vp1394CMUGrabber_h
46
47
#include <visp/vpConfig.h>
48
49
#ifdef VISP_HAVE_CMU1394
50
51
#include <windows.h>
52
#include <1394Camera.h>
// CMU library
53
54
#include <visp/vpImage.h>
55
#include <visp/vpFrameGrabber.h>
56
#include <visp/vpFrameGrabberException.h>
57
#include <visp/vpRGBa.h>
58
59
147
class
VISP_EXPORT
vp1394CMUGrabber
:
public
vpFrameGrabber
148
{
149
public
:
153
typedef
enum
{
154
YUV444
,
155
YUV422
,
156
YUV411
,
157
RGB8
,
158
MONO8
,
159
MONO16
,
160
UNKNOWN
161
} vpColorCodingType;
162
163
private
:
165
C1394Camera *camera;
167
int
index;
169
unsigned
long
_format;
171
unsigned
long
_mode ;
173
unsigned
long
_fps ;
175
bool
_modeauto;
177
unsigned
short
_gain;
179
unsigned
short
_shutter;
181
vpColorCodingType _color;
182
183
public
:
184
185
// Constructor.
186
vp1394CMUGrabber
();
187
// Destructor.
188
virtual
~
vp1394CMUGrabber
();
189
190
// Acquire one frame in a greyscale image.
191
void
acquire
(
vpImage<unsigned char>
&I);
192
193
// Acquire one frame in a color image.
194
void
acquire
(
vpImage<vpRGBa>
&I);
195
196
// Stop the acquisition.
197
void
close
();
198
199
// Display information about the camera on the standard output.
200
void
displayCameraDescription(
int
cam_id);
201
202
// Display camera model on the standard output. Call it after open the grabber.
203
void
displayCameraModel();
204
205
// Get the video framerate
206
int
getFramerate();
207
208
// Get the gain min and max values.
209
void
getGainMinMax(
unsigned
short
&min,
unsigned
short
&max);
210
211
// Get the number of connected cameras.
212
int
getNumberOfConnectedCameras()
const
;
213
214
// Get the shutter min and max values.
215
void
getShutterMinMax(
unsigned
short
&min,
unsigned
short
&max);
216
218
vpColorCodingType
getVideoColorCoding
()
const
219
{
220
vpColorCodingType
color =
vp1394CMUGrabber::UNKNOWN
;
221
if
(_format == 0)
222
{
223
switch
(_mode)
224
{
225
case
0: color =
vp1394CMUGrabber::YUV444
;
break
;
226
case
1: color =
vp1394CMUGrabber::YUV422
;
break
;
227
case
2: color =
vp1394CMUGrabber::YUV411
;
break
;
228
case
3: color =
vp1394CMUGrabber::YUV422
;
break
;
229
case
4: color =
vp1394CMUGrabber::RGB8
;
break
;
230
case
5: color =
vp1394CMUGrabber::MONO8
;
break
;
231
case
6: color =
vp1394CMUGrabber::MONO16
;
break
;
232
}
233
}
234
else
if
(_format == 1)
235
{
236
switch
(_mode)
237
{
238
case
0: color =
vp1394CMUGrabber::YUV422
;
break
;
239
case
1: color =
vp1394CMUGrabber::RGB8
;
break
;
240
case
2: color =
vp1394CMUGrabber::MONO8
;
break
;
241
case
3: color =
vp1394CMUGrabber::YUV422
;
break
;
242
case
4: color =
vp1394CMUGrabber::RGB8
;
break
;
243
case
5: color =
vp1394CMUGrabber::MONO8
;
break
;
244
case
6: color =
vp1394CMUGrabber::MONO16
;
break
;
245
case
7: color =
vp1394CMUGrabber::MONO16
;
break
;
246
}
247
}
248
else
if
(_format == 2)
249
{
250
switch
(_mode)
251
{
252
case
0: color =
vp1394CMUGrabber::YUV422
;
break
;
253
case
1: color =
vp1394CMUGrabber::RGB8
;
break
;
254
case
2: color =
vp1394CMUGrabber::MONO8
;
break
;
255
case
3: color =
vp1394CMUGrabber::YUV422
;
break
;
256
case
4: color =
vp1394CMUGrabber::RGB8
;
break
;
257
case
5: color =
vp1394CMUGrabber::MONO8
;
break
;
258
case
6: color =
vp1394CMUGrabber::MONO16
;
break
;
259
case
7: color =
vp1394CMUGrabber::MONO16
;
break
;
260
}
261
}
262
263
return
color;
264
}
265
266
// Initialization of the grabber using a greyscale image.
267
void
open
(
vpImage<unsigned char>
&I);
268
269
// Initialization of the grabber using a color image.
270
void
open
(
vpImage<vpRGBa>
&I);
271
272
// Select the camera on the bus. Call it before open the grabber.
273
void
selectCamera(
int
cam_id);
274
275
// Enable auto gain
276
void
setAutoGain();
277
278
// Enable auto shutter
279
void
setAutoShutter();
280
281
// Set the gain and the shutter values. Call it before open the grabber
282
void
setControl(
unsigned
short
gain,
unsigned
short
shutter);
283
284
// Set the frame rate. Call it before open the grabber.
285
void
setFramerate(
unsigned
long
fps);
286
287
// Set the shutter value. Call it before open the grabber
288
void
setShutter(
unsigned
short
shutter);
289
290
// Set the gain value. Call it before open the grabber
291
void
setGain(
unsigned
short
gain);
292
293
// Set the video format and mode. Call it before open the grabber.
294
void
setVideoMode(
unsigned
long
format,
unsigned
long
mode );
295
296
private
:
297
298
void
initCamera();
299
300
};
301
302
#endif
303
#endif
src
device
framegrabber
1394
vp1394CMUGrabber.h
Generated on Thu Oct 24 2013 14:47:35 for ViSP by
1.8.4