cv::TickMeter class addition
authorSuleyman TURKMEN <sturkmen@hotmail.com>
Wed, 25 May 2016 14:16:09 +0000 (17:16 +0300)
committerSuleyman TURKMEN <sturkmen@hotmail.com>
Thu, 23 Jun 2016 16:06:57 +0000 (19:06 +0300)
modules/core/include/opencv2/core/utility.hpp
samples/gpu/cascadeclassifier.cpp
samples/gpu/generalized_hough.cpp
samples/gpu/stereo_multi.cpp
samples/gpu/super_resolution.cpp
samples/gpu/tick_meter.hpp [deleted file]
samples/gpu/video_reader.cpp
samples/gpu/video_writer.cpp

index 60b2d3a..c74c118 100644 (file)
@@ -251,7 +251,8 @@ CV_EXPORTS_W const String& getBuildInformation();
 
 The function returns the number of ticks after the certain event (for example, when the machine was
 turned on). It can be used to initialize RNG or to measure a function execution time by reading the
-tick count before and after the function call. See also the tick frequency.
+tick count before and after the function call.
+@sa getTickFrequency, TickMeter
  */
 CV_EXPORTS_W int64 getTickCount();
 
@@ -264,9 +265,126 @@ execution time in seconds:
     // do something ...
     t = ((double)getTickCount() - t)/getTickFrequency();
 @endcode
+@sa getTickCount, TickMeter
  */
 CV_EXPORTS_W double getTickFrequency();
 
+/** @brief a Class to measure passing time.
+
+The class computes passing time by counting the number of ticks per second. That is, the following code computes the
+execution time in seconds:
+@code
+TickMeter tm;
+tm.start();
+// do something ...
+tm.stop();
+std::cout << tm.getTimeSec();
+@endcode
+@sa getTickCount, getTickFrequency
+*/
+
+class CV_EXPORTS_W TickMeter
+{
+public:
+    //! the default constructor
+    CV_WRAP TickMeter()
+    {
+    reset();
+    }
+
+    /**
+    starts counting ticks.
+    */
+    CV_WRAP void start()
+    {
+    startTime = cv::getTickCount();
+    }
+
+    /**
+    stops counting ticks.
+    */
+    CV_WRAP void stop()
+    {
+    int64 time = cv::getTickCount();
+    if (startTime == 0)
+    return;
+    ++counter;
+    sumTime += (time - startTime);
+    startTime = 0;
+    }
+
+    /**
+    returns counted ticks.
+    */
+    CV_WRAP int64 getTimeTicks() const
+    {
+    return sumTime;
+    }
+
+    /**
+    returns passed time in microseconds.
+    */
+    CV_WRAP double getTimeMicro() const
+    {
+    return getTimeMilli()*1e3;
+    }
+
+    /**
+    returns passed time in milliseconds.
+    */
+    CV_WRAP double getTimeMilli() const
+    {
+    return getTimeSec()*1e3;
+    }
+
+    /**
+    returns passed time in seconds.
+    */
+    CV_WRAP double getTimeSec()   const
+    {
+    return (double)getTimeTicks() / getTickFrequency();
+    }
+
+    /**
+    returns internal counter value.
+    */
+    CV_WRAP int64 getCounter() const
+    {
+    return counter;
+    }
+
+    /**
+    resets internal values.
+    */
+    CV_WRAP void reset()
+    {
+    startTime = 0;
+    sumTime = 0;
+    counter = 0;
+    }
+
+private:
+    int64 counter;
+    int64 sumTime;
+    int64 startTime;
+};
+
+/** @brief output operator
+@code
+TickMeter tm;
+tm.start();
+// do something ...
+tm.stop();
+std::cout << tm;
+@endcode
+*/
+
+static inline
+std::ostream& operator << (std::ostream& out, const TickMeter& tm)
+{
+    return out << tm.getTimeSec() << "sec";
+}
+
 /** @brief Returns the number of CPU ticks.
 
 The function returns the current number of CPU ticks on some architectures (such as x86, x64,
index f6209f9..156efbf 100644 (file)
@@ -13,8 +13,6 @@
 #include "opencv2/cudaimgproc.hpp"
 #include "opencv2/cudawarping.hpp"
 
-#include "tick_meter.hpp"
-
 using namespace std;
 using namespace cv;
 using namespace cv::cuda;
index fb1cb89..7b7e80a 100644 (file)
@@ -8,8 +8,6 @@
 #include "opencv2/cudaimgproc.hpp"
 #include "opencv2/highgui.hpp"
 
-#include "tick_meter.hpp"
-
 using namespace std;
 using namespace cv;
 
index bfb3e8a..7ef6567 100644 (file)
@@ -17,8 +17,6 @@
 #include "opencv2/imgproc.hpp"
 #include "opencv2/cudastereo.hpp"
 
-#include "tick_meter.hpp"
-
 using namespace std;
 using namespace cv;
 using namespace cv::cuda;
index 026afd9..94a922c 100644 (file)
@@ -11,8 +11,6 @@
 #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
deleted file mode 100644 (file)
index c11a22d..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#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  getTimeMilli()*1e3;}
-double TickMeter::getTimeMilli() const { return getTimeSec()*1e3; }
-double TickMeter::getTimeSec() const { return (double)getTimeTicks()/cv::getTickFrequency();}
-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
index d8d6e13..a40a680 100644 (file)
@@ -14,8 +14,6 @@
 #include <opencv2/cudacodec.hpp>
 #include <opencv2/highgui.hpp>
 
-#include "tick_meter.hpp"
-
 int main(int argc, const char* argv[])
 {
     if (argc != 2)
index 6c5d141..80d2cfc 100644 (file)
@@ -11,8 +11,6 @@
 #include "opencv2/cudacodec.hpp"
 #include "opencv2/highgui.hpp"
 
-#include "tick_meter.hpp"
-
 int main(int argc, const char* argv[])
 {
     if (argc != 2)