Add function setRNGSeed and seed setup in python tests
authorVladislav Sovrasov <vladislav.sovrasov@itseez.com>
Fri, 25 Mar 2016 13:17:58 +0000 (16:17 +0300)
committerVladislav Sovrasov <vladislav.sovrasov@itseez.com>
Fri, 25 Mar 2016 13:17:58 +0000 (16:17 +0300)
modules/core/include/opencv2/core.hpp
modules/core/src/rand.cpp
modules/python/test/tests_common.py

index 2e47658..beeace5 100644 (file)
@@ -2170,6 +2170,14 @@ is much faster to use this function to retrieve the generator and then use RNG::
 */
 CV_EXPORTS RNG& theRNG();
 
+/** @brief Sets state of default random number generator.
+
+The function sets state of default random number generator to custom value.
+@param new state for default random number generator
+@sa RNG, randu, randn
+*/
+CV_EXPORTS_W void setRNGSeed(int seed);
+
 /** @brief Generates a single uniformly-distributed random number or an array of random numbers.
 
 Non-template variant of the function fills the matrix dst with uniformly-distributed
index 9d95243..c985fac 100644 (file)
@@ -734,6 +734,12 @@ cv::RNG& cv::theRNG()
     return getCoreTlsData().get()->rng;
 }
 
+void cv::setRNGSeed(int seed)
+{
+    getCoreTlsData().get()->rng.state = static_cast<uint64>(seed);
+}
+
+
 void cv::randu(InputOutputArray dst, InputArray low, InputArray high)
 {
     theRNG().fill(dst, RNG::UNIFORM, low, high);
index 3a636b2..67b5bea 100644 (file)
@@ -42,6 +42,7 @@ class NewOpenCVTests(unittest.TestCase):
         return self.image_cache[filename]
 
     def setUp(self):
+        cv2.setRNGSeed(10)
         self.image_cache = {}
 
     def hashimg(self, im):