annotate c/cvutils.cpp @ 12:ff5403319cec

optical flow demo working
author Nicolas Saunier <nico@confins.net>
date Wed, 11 Nov 2009 23:25:23 -0500
parents e77e2fd69b02
children 336926453b28
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
1 #include "cvutils.hpp"
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
2
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
3 #include "opencv/cv.h"
12
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
4 #include "opencv/highgui.h"
9
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
5
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
6 #include <iostream>
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
7
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
8 using namespace std;
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
9
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
10 IplImage* allocateImage(const int& width, const int& height, const int& depth, const int& channels) { return ::allocateImage(cvSize(width, height), depth, channels);}
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
11
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
12 IplImage* allocateImage(const CvSize& size, const int& depth, const int& channels) {
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
13 IplImage* image = cvCreateImage(size, depth, channels);
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
14
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
15 if (!image) {
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
16 cerr << "Error: Couldn't allocate image. Out of memory?\n" << endl;
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
17 exit(-1);
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
18 }
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
19
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
20 return image;
eb38637f338d created cvutils
Nicolas Saunier <nico@confins.net>
parents:
diff changeset
21 }
11
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
22
12
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
23 int goToFrameNum(CvCapture* inputVideo, const int& currentFrameNum, const int& targetFrameNum) {
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
24 int frameNum = currentFrameNum;
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
25 if (currentFrameNum > targetFrameNum) {
11
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
26 cerr << "Current frame number " << currentFrameNum << " is after the target frame number " << targetFrameNum << "." << endl;
12
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
27 } else if (currentFrameNum < targetFrameNum) {
11
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
28 IplImage* frame = cvQueryFrame(inputVideo);
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
29 frameNum++;
12
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
30 while (frame && frameNum<targetFrameNum) {
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
31 frame = cvQueryFrame(inputVideo);
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
32 frameNum++;
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
33 }
11
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
34 }
12
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
35
ff5403319cec optical flow demo working
Nicolas Saunier <nico@confins.net>
parents: 11
diff changeset
36 return frameNum;
11
e77e2fd69b02 modularized code (not compiling)
Nicolas Saunier <nico@confins.net>
parents: 9
diff changeset
37 }