diff --git a/CMakeLists.txt b/CMakeLists.txt index a0b2baf529..e32d248629 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}") message(FATAL_ERROR " FATAL: In-source builds are not allowed. - You should create separate directory for build files. + You should create a separate directory for build files. ") endif() @@ -263,7 +263,7 @@ OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT APPLE_FRAMEWORK) ) OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT APPLE_FRAMEWORK) ) OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON ) -OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC ) +OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of statically linked CRT for statically linked OpenCV" ON IF MSVC ) OCV_OPTION(BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF ) OCV_OPTION(BUILD_FAT_JAVA_LIB "Create fat java wrapper containing the whole OpenCV library" ON IF NOT BUILD_SHARED_LIBS AND CMAKE_COMPILER_IS_GNUCXX ) OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID ) diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index a75e171fb3..e3a1358172 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -48,8 +48,8 @@ macro(ocv_update VAR) endif() endmacro() -# Search packages for host system instead of packages for target system -# in case of cross compilation thess macro should be defined by toolchain file +# Search packages for the host system instead of packages for the target system +# in case of cross compilation these macros should be defined by the toolchain file if(NOT COMMAND find_host_package) macro(find_host_package) find_package(${ARGN}) @@ -128,7 +128,7 @@ function(ocv_is_opencv_directory result_var dir) endfunction() -# adds include directories in such way that directories from the OpenCV source tree go first +# adds include directories in such a way that directories from the OpenCV source tree go first function(ocv_include_directories) ocv_debug_message("ocv_include_directories( ${ARGN} )") set(__add_before "") @@ -162,7 +162,7 @@ function(ocv_append_dependant_targets target) set(OPENCV_DEPENDANT_TARGETS_${target} "${OPENCV_DEPENDANT_TARGETS_${target}};${ARGN}" CACHE INTERNAL "" FORCE) endfunction() -# adds include directories in such way that directories from the OpenCV source tree go first +# adds include directories in such a way that directories from the OpenCV source tree go first function(ocv_target_include_directories target) #ocv_debug_message("ocv_target_include_directories(${target} ${ARGN})") _ocv_fix_target(target) @@ -497,7 +497,7 @@ macro(ocv_check_modules define) endmacro() -# Macros that checks if module have been installed. +# Macro that checks if module has been installed. # After it adds module to build and define # constants passed as second arg macro(CHECK_MODULE module_name define cv_module) @@ -656,7 +656,7 @@ macro(ocv_list_add_suffix LST SUFFIX) endmacro() -# gets and removes the first element from list +# gets and removes the first element from the list macro(ocv_list_pop_front LST VAR) if(${LST}) list(GET ${LST} 0 ${VAR}) diff --git a/cmake/OpenCVVersion.cmake b/cmake/OpenCVVersion.cmake index dda0474227..226db7a45f 100644 --- a/cmake/OpenCVVersion.cmake +++ b/cmake/OpenCVVersion.cmake @@ -13,8 +13,8 @@ set(OPENCV_VERSION "${OPENCV_VERSION_PLAIN}${OPENCV_VERSION_STATUS}") set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}") set(OPENCV_LIBVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}.${OPENCV_VERSION_PATCH}") -# create a dependency on version file -# we never use output of the following command but cmake will rerun automatically if the version file changes +# create a dependency on the version file +# we never use the output of the following command but cmake will rerun automatically if the version file changes configure_file("${OPENCV_VERSION_FILE}" "${CMAKE_BINARY_DIR}/junk/version.junk" COPYONLY) ocv_update(OPENCV_VS_VER_FILEVERSION_QUAD "${OPENCV_VERSION_MAJOR},${OPENCV_VERSION_MINOR},${OPENCV_VERSION_PATCH},0") diff --git a/modules/core/include/opencv2/core/utility.hpp b/modules/core/include/opencv2/core/utility.hpp index 41ccb4b88c..c50d2c3f69 100644 --- a/modules/core/include/opencv2/core/utility.hpp +++ b/modules/core/include/opencv2/core/utility.hpp @@ -198,12 +198,12 @@ If threads == 0, OpenCV will disable threading optimizations and run all it's fu sequentially. Passing threads \< 0 will reset threads number to system default. This function must be called outside of parallel region. -OpenCV will try to run it's functions with specified threads number, but some behaviour differs from +OpenCV will try to run its functions with specified threads number, but some behaviour differs from framework: - `TBB` - User-defined parallel constructions will run with the same threads number, if - another does not specified. If later on user creates own scheduler, OpenCV will use it. + another is not specified. If later on user creates his own scheduler, OpenCV will use it. - `OpenMP` - No special defined behaviour. -- `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run it's +- `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its functions sequentially. - `GCD` - Supports only values \<= 0. - `C=` - No special defined behaviour. @@ -233,7 +233,7 @@ CV_EXPORTS_W int getNumThreads(); /** @brief Returns the index of the currently executed thread within the current parallel region. Always returns 0 if called outside of parallel region. -The exact meaning of return value depends on the threading framework used by OpenCV library: +The exact meaning of the return value depends on the threading framework used by OpenCV library: - `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future. - `OpenMP` - The thread number, within the current team, of the calling thread. - `Concurrency` - An ID for the virtual processor that the current context is executing on (0 @@ -285,6 +285,19 @@ tm.start(); tm.stop(); std::cout << tm.getTimeSec(); @endcode + +It is also possible to compute the average time over multiple runs: +@code +TickMeter tm; +for (int i = 0; i < 100; i++) +{ + tm.start(); + // do something ... + tm.stop(); +} +double average_time = tm.getTimeSec() / tm.getCounter(); +std::cout << "Average time in second per iteration is: " << average_time << std::endl; +@endcode @sa getTickCount, getTickFrequency */ @@ -428,12 +441,13 @@ The function returns the aligned pointer of the same type as the input pointer: */ template static inline _Tp* alignPtr(_Tp* ptr, int n=(int)sizeof(_Tp)) { + CV_DbgAssert((n & (n - 1)) == 0); // n is a power of 2 return (_Tp*)(((size_t)ptr + n-1) & -n); } /** @brief Aligns a buffer size to the specified number of bytes. -The function returns the minimum number that is greater or equal to sz and is divisible by n : +The function returns the minimum number that is greater than or equal to sz and is divisible by n : \f[\texttt{(sz + n-1) & -n}\f] @param sz Buffer size to align. @param n Alignment size that must be a power of two. @@ -482,7 +496,7 @@ The function returns true if the optimized code is enabled. Otherwise, it return */ CV_EXPORTS_W bool useOptimized(); -static inline size_t getElemSize(int type) { return CV_ELEM_SIZE(type); } +static inline size_t getElemSize(int type) { return (size_t)CV_ELEM_SIZE(type); } /////////////////////////////// Parallel Primitives ////////////////////////////////// @@ -526,10 +540,10 @@ template inline void Mat::forEach_impl(const Functor& operation) { if (false) { operation(*reinterpret_cast<_Tp*>(0), reinterpret_cast(0)); - // If your compiler fail in this line. + // If your compiler fails in this line. // Please check that your functor signature is - // (_Tp&, const int*) <- multidimential - // or (_Tp&, void*) <- in case of you don't need current idx. + // (_Tp&, const int*) <- multi-dimensional + // or (_Tp&, void*) <- in case you don't need current idx. } CV_Assert(this->total() / this->size[this->dims - 1] <= INT_MAX);