Mercurial Hosting > traffic-intelligence
annotate c/InputVideoFileModule.cpp @ 651:335f6641bf7a
changed the paramter usePrototypes to False by default
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 17 Apr 2015 17:33:32 +0200 |
parents | 2be846d36dec |
children |
rev | line source |
---|---|
400
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
1 #include "InputVideoFileModule.h" |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
2 |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
3 InputVideoFileModule::InputVideoFileModule(const std::string& videoPath) |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
4 : mInit(false) |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
5 , mNumberOfFrame(0) |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
6 { |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
7 mInit = mVideoCapture.open(videoPath.c_str()); |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
8 double frameCount; |
429
2be846d36dec
reverted to stable OpenCV release 2.4.6
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
409
diff
changeset
|
9 frameCount = mVideoCapture.get(CV_CAP_PROP_FRAME_COUNT); |
2be846d36dec
reverted to stable OpenCV release 2.4.6
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
409
diff
changeset
|
10 mSize = cv::Size(mVideoCapture.get(CV_CAP_PROP_FRAME_WIDTH), mVideoCapture.get(CV_CAP_PROP_FRAME_HEIGHT)); |
400
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
11 mNumberOfFrame = (unsigned int)frameCount; |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
12 } |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
13 |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
14 InputVideoFileModule::~InputVideoFileModule(void) { } |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
15 |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
16 |
401
b829ebdc18e6
simplified input of directories of video frames (simply use the video filename parameter to point at the directory)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
400
diff
changeset
|
17 void InputVideoFileModule::setFrameNumber(const unsigned int& frameNumber) { |
429
2be846d36dec
reverted to stable OpenCV release 2.4.6
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
409
diff
changeset
|
18 mVideoCapture.set(CV_CAP_PROP_POS_FRAMES, frameNumber); |
400
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
19 } |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
20 |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
21 bool InputVideoFileModule::getNextFrame(cv::Mat& outputPicture) |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
22 { |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
23 bool success = false; |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
24 if(mInit) |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
25 { |
401
b829ebdc18e6
simplified input of directories of video frames (simply use the video filename parameter to point at the directory)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
400
diff
changeset
|
26 mVideoCapture >> outputPicture; |
400
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
27 success = !outputPicture.empty(); |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
28 } |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
29 return success; |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
30 } |
7ef1071e3cc3
clean up of input classes for list of images and video files
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
399
diff
changeset
|
31 |