#include <iostream>
#include <iomanip>
-#include "opencv2/contrib/contrib.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/cudaimgproc.hpp"
#include "opencv2/cudawarping.hpp"
+#include "tick_meter.hpp"
+
using namespace std;
using namespace cv;
using namespace cv::cuda;
#include "opencv2/imgproc.hpp"
#include "opencv2/cudaimgproc.hpp"
#include "opencv2/highgui.hpp"
-#include "opencv2/contrib.hpp"
+
+#include "tick_meter.hpp"
using namespace std;
using namespace cv;
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
-#include "opencv2/contrib.hpp"
#include "opencv2/cudastereo.hpp"
+#include "tick_meter.hpp"
+
using namespace std;
using namespace cv;
using namespace cv::cuda;
#include "opencv2/core/utility.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
-#include "opencv2/contrib.hpp"
#include "opencv2/superres.hpp"
#include "opencv2/superres/optical_flow.hpp"
#include "opencv2/opencv_modules.hpp"
+#include "tick_meter.hpp"
+
using namespace std;
using namespace cv;
using namespace cv::superres;
--- /dev/null
+#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
#include <opencv2/core/opengl.hpp>
#include <opencv2/cudacodec.hpp>
#include <opencv2/highgui.hpp>
-#include <opencv2/contrib.hpp>
+
+#include "tick_meter.hpp"
int main(int argc, const char* argv[])
{
cv::cuda::GpuMat d_frame;
cv::Ptr<cv::cudacodec::VideoReader> d_reader = cv::cudacodec::createVideoReader(fname);
- cv::TickMeter tm;
+ TickMeter tm;
std::vector<double> cpu_times;
std::vector<double> gpu_times;
#include "opencv2/core.hpp"
#include "opencv2/cudacodec.hpp"
#include "opencv2/highgui.hpp"
-#include "opencv2/contrib.hpp"
int main(int argc, const char* argv[])
{