ACT-CV - Machine Vision for Cognitive Modeling
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
vision
OpenCVFrameSource.cpp
Go to the documentation of this file.
1
// -*- mode: c++; indent-tabs-mode: nil; c-basic-offset: 4; coding: iso-8859-1; -*-
2
3
/*
4
ACT-CV - Machine Vision for Cognitive Modeling
5
Copyright (c) 2008 Marc Halbruegge
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
27
#include <iostream>
28
#if HAVE_CONFIG_H
29
#include <
config.h
>
30
#endif
31
32
#include <
mhexcptn.h
>
33
#include "
OpenCVFrameSource.h
"
34
35
using namespace
std;
36
37
OpenCVFrameSource::OpenCVFrameSource
(CvCapture* c)
38
: capture(c), n(0) {
39
MHDBGMSG
(__FILE__,__LINE__,__PRETTY_FUNCTION__);
40
cout <<
"source: "
<< cvGetCaptureProperty(
capture
, CV_CAP_PROP_FPS) <<
" fps"
<< endl;
41
int
fcc =
static_cast<
int
>
(cvGetCaptureProperty(
capture
, CV_CAP_PROP_FOURCC));
42
char
fourcc[] = {fcc & 0XFF , (fcc & 0XFF00) >> 8,(fcc & 0XFF0000) >> 16,(fcc & 0XFF000000) >> 24, 0};
43
cout <<
"codec: "
<< fourcc << endl;
44
}
45
46
OpenCVFrameSource::~OpenCVFrameSource
() {
47
cvReleaseCapture(&
capture
);
48
}
49
50
IplImage*
OpenCVFrameSource::GetNextFrame
() {
51
if
(
capture
==
nullptr
)
return
nullptr
;
52
MHDBGMSG
(__FILE__,__LINE__,__PRETTY_FUNCTION__);
53
if
(!cvGrabFrame(
capture
))
return
nullptr
;
54
MHDBGMSG
(__FILE__,__LINE__,__PRETTY_FUNCTION__);
55
56
++
n
;
57
58
return
cvRetrieveFrame(
capture
);
59
}
60
61
OpenCVFrameSource
*
62
OpenCVFrameSource::CameraSourceFactory
(
int
i) {
63
return
new
OpenCVFrameSource
(cvCaptureFromCAM(i));
64
}
65
66
OpenCVFrameSource
*
67
OpenCVFrameSource::FileSourceFactory
(
const
char
*fn) {
68
return
new
OpenCVFrameSource
(cvCaptureFromFile(fn));
69
}
ACT-CV - Machine Vision for Cognitive Modeling
© 2015
Marc Halbruegge
(actcvlibrary@googlemail.com)