From e0c8721830f7bca0873f40c9938e5af81e887e19 Mon Sep 17 00:00:00 2001 From: Rok Mandeljc Date: Sat, 30 Aug 2014 00:00:11 +0200 Subject: [PATCH] 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. --- samples/gpu/cascadeclassifier.cpp | 3 +- samples/gpu/generalized_hough.cpp | 3 +- samples/gpu/stereo_multi.cpp | 3 +- samples/gpu/super_resolution.cpp | 3 +- samples/gpu/tick_meter.hpp | 48 +++++++++++++++++++++++++++++++ samples/gpu/video_reader.cpp | 5 ++-- samples/gpu/video_writer.cpp | 1 - 7 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 samples/gpu/tick_meter.hpp diff --git a/samples/gpu/cascadeclassifier.cpp b/samples/gpu/cascadeclassifier.cpp index cfd32a785..dbb2895e9 100644 --- a/samples/gpu/cascadeclassifier.cpp +++ b/samples/gpu/cascadeclassifier.cpp @@ -6,7 +6,6 @@ #include #include -#include "opencv2/contrib/contrib.hpp" #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" @@ -14,6 +13,8 @@ #include "opencv2/cudaimgproc.hpp" #include "opencv2/cudawarping.hpp" +#include "tick_meter.hpp" + using namespace std; using namespace cv; using namespace cv::cuda; diff --git a/samples/gpu/generalized_hough.cpp b/samples/gpu/generalized_hough.cpp index 6803bf9e9..a9081c56b 100644 --- a/samples/gpu/generalized_hough.cpp +++ b/samples/gpu/generalized_hough.cpp @@ -7,7 +7,8 @@ #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; diff --git a/samples/gpu/stereo_multi.cpp b/samples/gpu/stereo_multi.cpp index bb75cf5e3..0997165f1 100644 --- a/samples/gpu/stereo_multi.cpp +++ b/samples/gpu/stereo_multi.cpp @@ -15,9 +15,10 @@ #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; diff --git a/samples/gpu/super_resolution.cpp b/samples/gpu/super_resolution.cpp index 4e3de21db..63173cd42 100644 --- a/samples/gpu/super_resolution.cpp +++ b/samples/gpu/super_resolution.cpp @@ -7,11 +7,12 @@ #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; diff --git a/samples/gpu/tick_meter.hpp b/samples/gpu/tick_meter.hpp new file mode 100644 index 000000000..d0a428b87 --- /dev/null +++ b/samples/gpu/tick_meter.hpp @@ -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 diff --git a/samples/gpu/video_reader.cpp b/samples/gpu/video_reader.cpp index 04cf4e47c..d8d6e136f 100644 --- a/samples/gpu/video_reader.cpp +++ b/samples/gpu/video_reader.cpp @@ -13,7 +13,8 @@ #include #include #include -#include + +#include "tick_meter.hpp" int main(int argc, const char* argv[]) { @@ -32,7 +33,7 @@ int main(int argc, const char* argv[]) cv::cuda::GpuMat d_frame; cv::Ptr d_reader = cv::cudacodec::createVideoReader(fname); - cv::TickMeter tm; + TickMeter tm; std::vector cpu_times; std::vector gpu_times; diff --git a/samples/gpu/video_writer.cpp b/samples/gpu/video_writer.cpp index 607f8d3c0..33d6abbf0 100644 --- a/samples/gpu/video_writer.cpp +++ b/samples/gpu/video_writer.cpp @@ -10,7 +10,6 @@ #include "opencv2/core.hpp" #include "opencv2/cudacodec.hpp" #include "opencv2/highgui.hpp" -#include "opencv2/contrib.hpp" int main(int argc, const char* argv[]) {