samples: gpu: removed inclusion of non-existent opencv2/contrib/contrib.hpp header, re-introduced TickMeter class in a separate header

This patch removes inclusion of opencv2/contrib/contrib.hpp header,
which does not exist anymore due to removal of opencv_contrib module.

The samples including this header appear to be doing so in order to
use TickMeter class; therefore, the latter is now provided by tick_meter.hpp
header file, located in samples/gpu folder.
This commit is contained in:
Rok Mandeljc 2014-08-30 00:00:11 +02:00
parent 8908b22c9d
commit e0c8721830
7 changed files with 59 additions and 7 deletions

View File

@ -6,7 +6,6 @@
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>
#include "opencv2/contrib/contrib.hpp"
#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp" #include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgproc/imgproc.hpp"
@ -14,6 +13,8 @@
#include "opencv2/cudaimgproc.hpp" #include "opencv2/cudaimgproc.hpp"
#include "opencv2/cudawarping.hpp" #include "opencv2/cudawarping.hpp"
#include "tick_meter.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
using namespace cv::cuda; using namespace cv::cuda;

View File

@ -7,7 +7,8 @@
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/cudaimgproc.hpp" #include "opencv2/cudaimgproc.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/contrib.hpp"
#include "tick_meter.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;

View File

@ -15,9 +15,10 @@
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/contrib.hpp"
#include "opencv2/cudastereo.hpp" #include "opencv2/cudastereo.hpp"
#include "tick_meter.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
using namespace cv::cuda; using namespace cv::cuda;

View File

@ -7,11 +7,12 @@
#include "opencv2/core/utility.hpp" #include "opencv2/core/utility.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp" #include "opencv2/imgproc.hpp"
#include "opencv2/contrib.hpp"
#include "opencv2/superres.hpp" #include "opencv2/superres.hpp"
#include "opencv2/superres/optical_flow.hpp" #include "opencv2/superres/optical_flow.hpp"
#include "opencv2/opencv_modules.hpp" #include "opencv2/opencv_modules.hpp"
#include "tick_meter.hpp"
using namespace std; using namespace std;
using namespace cv; using namespace cv;
using namespace cv::superres; using namespace cv::superres;

View File

@ -0,0 +1,48 @@
#ifndef OPENCV_CUDA_SAMPLES_TICKMETER_
#define OPENCV_CUDA_SAMPLES_TICKMETER_
class CV_EXPORTS TickMeter
{
public:
TickMeter();
void start();
void stop();
int64 getTimeTicks() const;
double getTimeMicro() const;
double getTimeMilli() const;
double getTimeSec() const;
int64 getCounter() const;
void reset();
private:
int64 counter;
int64 sumTime;
int64 startTime;
};
std::ostream& operator << (std::ostream& out, const TickMeter& tm);
TickMeter::TickMeter() { reset(); }
int64 TickMeter::getTimeTicks() const { return sumTime; }
double TickMeter::getTimeMicro() const { return (double)getTimeTicks()/cv::getTickFrequency(); }
double TickMeter::getTimeMilli() const { return getTimeMicro()*1e-3; }
double TickMeter::getTimeSec() const { return getTimeMilli()*1e-3; }
int64 TickMeter::getCounter() const { return counter; }
void TickMeter::reset() {startTime = 0; sumTime = 0; counter = 0; }
void TickMeter::start(){ startTime = cv::getTickCount(); }
void TickMeter::stop()
{
int64 time = cv::getTickCount();
if ( startTime == 0 )
return;
++counter;
sumTime += ( time - startTime );
startTime = 0;
}
std::ostream& operator << (std::ostream& out, const TickMeter& tm) { return out << tm.getTimeSec() << "sec"; }
#endif

View File

@ -13,7 +13,8 @@
#include <opencv2/core/opengl.hpp> #include <opencv2/core/opengl.hpp>
#include <opencv2/cudacodec.hpp> #include <opencv2/cudacodec.hpp>
#include <opencv2/highgui.hpp> #include <opencv2/highgui.hpp>
#include <opencv2/contrib.hpp>
#include "tick_meter.hpp"
int main(int argc, const char* argv[]) int main(int argc, const char* argv[])
{ {
@ -32,7 +33,7 @@ int main(int argc, const char* argv[])
cv::cuda::GpuMat d_frame; cv::cuda::GpuMat d_frame;
cv::Ptr<cv::cudacodec::VideoReader> d_reader = cv::cudacodec::createVideoReader(fname); cv::Ptr<cv::cudacodec::VideoReader> d_reader = cv::cudacodec::createVideoReader(fname);
cv::TickMeter tm; TickMeter tm;
std::vector<double> cpu_times; std::vector<double> cpu_times;
std::vector<double> gpu_times; std::vector<double> gpu_times;

View File

@ -10,7 +10,6 @@
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
#include "opencv2/cudacodec.hpp" #include "opencv2/cudacodec.hpp"
#include "opencv2/highgui.hpp" #include "opencv2/highgui.hpp"
#include "opencv2/contrib.hpp"
int main(int argc, const char* argv[]) int main(int argc, const char* argv[])
{ {