Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
a00f0c44
Commit
a00f0c44
authored
Jul 14, 2016
by
Maksim Shabunin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6821 from sturkmen72:TickMeter_class_addition
parents
7d007d21
d2bad6fe
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
119 additions
and
61 deletions
+119
-61
utility.hpp
modules/core/include/opencv2/core/utility.hpp
+119
-1
cascadeclassifier.cpp
samples/gpu/cascadeclassifier.cpp
+0
-2
generalized_hough.cpp
samples/gpu/generalized_hough.cpp
+0
-2
stereo_multi.cpp
samples/gpu/stereo_multi.cpp
+0
-2
super_resolution.cpp
samples/gpu/super_resolution.cpp
+0
-2
tick_meter.hpp
samples/gpu/tick_meter.hpp
+0
-48
video_reader.cpp
samples/gpu/video_reader.cpp
+0
-2
video_writer.cpp
samples/gpu/video_writer.cpp
+0
-2
No files found.
modules/core/include/opencv2/core/utility.hpp
View file @
a00f0c44
...
...
@@ -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,
...
...
samples/gpu/cascadeclassifier.cpp
View file @
a00f0c44
...
...
@@ -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
;
...
...
samples/gpu/generalized_hough.cpp
View file @
a00f0c44
...
...
@@ -8,8 +8,6 @@
#include "opencv2/cudaimgproc.hpp"
#include "opencv2/highgui.hpp"
#include "tick_meter.hpp"
using
namespace
std
;
using
namespace
cv
;
...
...
samples/gpu/stereo_multi.cpp
View file @
a00f0c44
...
...
@@ -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
;
...
...
samples/gpu/super_resolution.cpp
View file @
a00f0c44
...
...
@@ -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
;
...
...
samples/gpu/tick_meter.hpp
deleted
100644 → 0
View file @
7d007d21
#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
samples/gpu/video_reader.cpp
View file @
a00f0c44
...
...
@@ -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
)
...
...
samples/gpu/video_writer.cpp
View file @
a00f0c44
...
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment