opencv2.0 随机数产生器用法

       RNG 对象在目前opencv2.0中,可以支持均匀分布的随机数以及高斯分布的随机数随机数的产生采用的是Multiply-With-Carry算法和Ziggurat算法。

其构造函数的初始化可以传入一个64位的整型参数作为随机数产生器的初值。next可以取出下一个随机数,uniform函数可以返回指定范围的随机数,gaussian函数返

回一个高斯随机数,fill则用随机数填充矩阵。

RNG rng;
// always produces 0
double a = rng.uniform(0, 1);
// produces double from [0, 1)
double a1 = rng.uniform((double)0, (double)1);
// produces float from [0, 1)
double b = rng.uniform(0.f, 1.f);
// produces double from [0, 1)
double c = rng.uniform(0., 1.);
// may cause compiler error because of ambiguity:
// RNG::uniform(0, (int)0.999999)? or RNG::uniform((double)0, 0.99999)?
double d = rng.uniform(0, 0.999999);

RNG的用法,主要依靠uniform与gaussian两个函数。 uniform的用法是一个区间,(a,b),然后uniform( a,b )会返回a,b之间的一个值。其中每个值都是等概率的,

还有一些随机数相关的函数,比如randu可以产生一个均匀分布的随机数或者矩阵,randn可以产生一个正态分布的随机数,randShuffle可以随机打乱矩

阵元素

猜你喜欢

转载自blog.csdn.net/ronaldo_hu/article/details/48406145